
1. ์ปดํฌ๋ํธ
1) ๊ธฐ๋ฅ์ ๋จ์๋ณ๋ก ์บก์ํํ๋ ๋ฆฌ์กํธ์ ๊ธฐ๋ณธ ๋จ์
2) ์ฌ์ฉ์๊ฐ ๋ณด๋ ๋ทฐ๋ ์ปดํฌ๋ํธ๋ค์ ์กฐํฉํ์ฌ ๋ง๋ ๋ค.
3) ํจ์ ํน์ ํด๋์ค๋ก ๋ง๋ ๋ค.
4) ์์ ์ปดํฌ๋ํธ์์ props๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , ๋ด๋ถ์ ์ผ๋ก ๊ฐ์์ state๋ฅผ ๊ด๋ฆฌํ๋ค.
5) ์ปดํฌ๋ํธ์ ์ด๋ฆ์ ๋๋ฌธ์๋ก ์์ํ๋ค.

import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import Milk from "./Milk";
ReactDOM.render(
<React.StrictMode>
<App />
<Milk />
</React.StrictMode>,
document.getElementById("root")
);
์ปดํฌ๋ํธ๋ ๋ฐ๋์ ํ๋์ ํ๊ทธ๋ง ๋ฆฌํดํ ์ ์๊ธฐ ๋๋ฌธ์, ์ต์์ ํ๊ทธ ์์ ํ๊ทธ/์ปดํฌ๋ํธ๋ค์ ๋ฐฐ์นํ๋ค.
2. State
- ๋ณ์ ๋์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ์ ์ฅ๊ณต๊ฐ
- ์ปดํฌ๋ํธ์ ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ๊ณต๊ฐ
- state๋ ๋ฌธ์, ์ซ์, array, object ๋ฑ ๋ฐ์ดํฐ ํ์
์ ์์ ๋กญ๊ฒ ์ค์ ํ ์ ์๊ณ , ๋ฐ์ดํฐ ์์ ๋ ๊ฐ๋ฅํ๋ค.
- ์์ฃผ ๋ฐ๋๊ณ ์ค์ํ ๋ฐ์ดํฐ๋ state๋ก ๋ง๋๋ ๊ฒ์ด ์ข๋ค.
-์ธ๋ถ์์ ์ ํ์ ์๋ ์ ๋ณด๋ฅผ ์๋ํ๋ ์ฉ๋๋ก ์ฌ์ฉํ๋ค.
- F5์์ด๋ html์ด ์๋์ผ๋ก ์ฌ๋ ๋๋งํ๋ ์ฃผ์ฒด๋ค.
1) setState()
- state๋ ์ง์ ์์ ํ์ง ์๋๋ค. setState()๋ฅผ ์ด์ฉํ์ฌ ์์ ํ๋ค.
- setState๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด, ์ state์ ํจ๊ป render function์ด ํธ์ถ๋์ง ์๋๋ค.
- setState๋ Virtual DOM์ ํตํด state๊ฐ ๋ฐ๋ ํ์ํ ๋ถ๋ถ๋ง ์ ๋ฐ์ดํธํ๋ค.
- setState๋ฅผ ํธ์ถํ ๋ ๋ง๋ค, ์๋ก์ด state์ ํจ๊ป render ํจ์๋ฅผ ํธ์ถํ๋ค.
- props๋ก state๋ฅผ ์ ๋ฌํ์ผ๋ฉด, ํ์ ์ปดํฌ๋ํธ๋ ๋์ผํ๊ฒ renderํจ์๊ฐ ํธ์ถ๋๋ค.
2) ํ์ฌ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก State๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ์๋ ์ฝ๋ฐฑํจ์๋ฅผ ํ์ฉํ๋ค.
- setState์ ๋ฐ๋ก ๊ฐ์ ๋ฃ์ง ์๊ณ , ์ฝ๋ฐฑํจ์๋ฅผ ๋ฃ์ด์ฃผ๋ ์ด์ ๋ setState๊ฐ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๋ฒ ํธ์ถํ๋ฉด ์ฒ๋ฆฌ ์์๊ฐ ๋ฐ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
const [count, setCount] = useState(0);
setCount((current) => {
return current + 1
})
3. Props

1) prop๋ ์ฝ๊ธฐ ์ ์ฉ์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝํ ์ ์๋ค.
this.props.title = "์ ๋ชฉ์ด ๋ฐ๋์์ต๋๋ค." // โ
2) ํจ์ํ ์ปดํฌ๋ํธ์์ props ๋ฐ์์ค๊ธฐ
- ํจ์ํ ์ปดํฌ๋ํธ์ ์ฒซ๋ฒ์งธ ์ธ์๋ props๋ฅผ ๋ฐ๋๋ค.
- {} curly bracket์ ์ฌ์ฉํด props์์ ์๋ ๋ณ์๋ค์ ๋ฐ๋ก ๋ฐ์์จ๋ค.
function IntroduceComponent({ name, picture, rating }) {
return (
<div>
<h2>I am {name}.</h2>
<img src={picture} alt="์ฌ์ง" height="200px" width="200px"></img>
<h4>{rating}/5</h4>
</div>
);
}
3) ์ํ์ ์ปดํฌ๋ํธ๊ฐ ํต์ ์์
<div className='App'>
<SubComponent
data={this.state.data}
onChange={(e) => {
this.setState({ data: e.target.value });
}}
/>
</div>
- ์์ ์ปดํฌ๋ํธ๊ฐ ํ์ ์ปดํฌ๋ํธ์๊ฒ ๋ช ๋ นํ ๋๋ props๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ
- ํ์ ์ปดํฌ๋ํธ๊ฐ ์์ ์ปดํฌ๋ํธ์๊ฒ ๋ช ๋ นํ ๋๋ props์ ๊ฐ์ ๋ฐ๊ฟ ์ ์๊ธฐ ๋๋ฌธ์ (setStateํจ์๋ฅผ ๋ด์) ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๋ค.
'๐ Front > โ๏ธ React JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [React Hook ์๋ฆฌ์ฆ 3]: 10๊ฐ์ง Hook๋ค (useMemo, useRef ๋ฑ) (0) | 2021.08.03 |
|---|---|
| [React Hook ์๋ฆฌ์ฆ 2]: useEffect() (0) | 2021.07.22 |
| [React Hook ์๋ฆฌ์ฆ 1]: ์ฐ๋ ์ด์ , useState() (0) | 2021.07.20 |
| [React Router] ๋ผ์ฐํฐ ์ฌ์ฉํ๊ธฐ(react-router-dom v5) (0) | 2021.07.20 |
| [React ์ ๋ฌธ]: ์ฐ๋ ์ด์ , ํน์ง, CRA, CRA๊ตฌ์ถ (0) | 2021.01.26 |