react app
์ ์คํ์ํฌ ํด๋๋ฅผ ์ก๊ณ ํฐ๋ฏธ๋์ npx create-react-app
๋ฃ๊ธฐnpm start
์คํ ์ ๋๋ ๊ฒฝ์ฐ port 3000๋ฒ๋์ ๋ญ ์ฐ๋์ง ํ์ธํด๋ณด๊ธฐ!
์ง๊ธ ์ ๊ณ ์๋๊ฑด ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ์ผ๋ก ์์ฑ๋๋ ํ์ผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํฉ๋๋ค.
index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css'; // index.js์ css ํ์ผ
import App from './App';
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
๐ <div class="root"><App/></div>
์ผ๋ก ๋ ๋๋ง ๋๋ค๋ ์๋ฏธ
app.js
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
๐ ๋ณ๊ฒฝํ๊ฑฐ๋, ์์ ๋๋ ํ์ผ ์ด ํ์ผ์ ์ด์ฉํ๋ฉด ๋๋ค. ( ์์ธํ ์์ ์ ์๋ components ์๋ค.)
๐ css๋ index.js > index.css , app.js > app.css
app.js ํ์ผ์ header๋ฅผ ์ถ๊ฐ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
function Header() {
//๋ ๋ฌธ ์ ๋ก ๊ธฐ์ํด์ผํจ
return (
<header>
<h1>
<a href="#none"></a>
</h1>
</header>
);
}
๐ react์ components๋ ๋ฌด์กฑ๊ถ,,, ๋ฌด์กฐ๊ฑด ๋๋ฌธ์๋ก ์์ํด์ผํฉ๋๋ค.
// app
function App() {
return (
<div className="App">
<Header></Header>
</div>
);
}
๐ ํ๋จ app.js
์ components ์ด๋ฆ์ ํ๊ทธ๋ก ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ฑฐ๋ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๊ฒฝ์ฐ
function Nav(props) {
const array = []; // ๋ด์์ค ๋ฐฐ์ด ๋ง๋ค๊ธฐ
for (let i = 0; i < props.list.length; i++) {
let li = props.list[i];
array.push(
<li key={li.id}>
<a href={"/read/" + li.id}>{li.title}</a>
<p>{li.body}</p>
</li>
);
}
// app
function App() {
const list = [
{ id: 1, title: "one", body: "header" },
{ id: 2, title: "two", body: "nav" },
{ id: 3, title: "three", body: "body" },
];
return (
<div className="App">
<Nav list={list}></Nav>
{/*{} ""๋ก ๊ฐ์ธ์ ๋ณด๋ด๋ฉด ๋ฌธ์์ด๋ก ๋ณด๋ด์ง๊ณ {}๋ก ๋ฃ์ด์ฃผ๋ฉด ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ*/}
</div>
);
}
๐ function components(props){}
props ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๋ด์์ค
๐ ๋ง์ ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง ์ฌ๊ธฐ์๋ for๋ฌธ array ๋ง๋ค์ด์ ๋ด์์ค
๐ ๋ฐฐ์ด์ ๋ด์์ ๋ฃ์ด์ค ๋ ๊ณ ์ ํ key
์ด ์์ด์ผ ํจ