ํฐ์คํ ๋ฆฌ ๋ทฐ
Language/React
[React ์ ๋ฌธ Day 2] state, ๋ ๋๋ง, Virtual DOM ๊ฐ๋จ ์ ๋ฆฌ
์ฑ._. 2025. 1. 21. 20:29Props
๐props๋?
- ์ปดํฌ๋ํธ ๊ฐ์ ์ ๋ณด ๊ตํ ๋ฐฉ์
- ๋ถ๋ชจ → ์์์๊ฒ ๋ฐ์ดํฐ(๊ฐ์ฒด ํํ)๋ฅผ ์ ๋ฌํ๋ ๊ตฌ์กฐ.
๐ํน์ง
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ: ๋ฐ๋์ ๋ถ๋ชจ → ์์ ๋ฐฉํฅ์ผ๋ก๋ง ์ ๋ฌ๋๋ค.
- ์ฝ๊ธฐ ์ ์ฉ: props๋ ์์ ํ์ง ์๊ณ ์ ๋ฌ๋ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
๐์ฌ์ฉ ํํ
- ์ ๋ฌํ๊ธฐ (๋ถ๋ชจ ์ปดํฌ๋ํธ):
return <Child motherName={name} />; // props๋ก 'name'์ ์ ๋ฌ
- ๋ฐ๊ธฐ (์์ ์ปดํฌ๋ํธ):
function Child(props) {
console.log(props); // ์ ๋ฌ๋ฐ์ props ์ถ๋ ฅ
return <div>์ฐ๊ฒฐ ์ฑ๊ณต</div>;
}
State
๐state๋?
- ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ฐ๋ ์ ์๋ ๊ฐ.
- UI ๋ฐ์์ ์ํด ๊ฐ์ด ๋ณํด์ผ ํ ๋ ์ฌ์ฉ.
- 'hook' ์ด๋ผ๊ณ ๋ ํ๋ค.
๐State ์์ฑ ๋ฐฉ๋ฒ
- useState()๋ฅผ ์ฌ์ฉํ์ฌ state๋ฅผ ์ ์ธํ๋ค.
- ์ด๊ธฐ ํ์
const [value, setValue] = useState(์ด๊ธฐ๊ฐ);
// ๋ฐฐ์ด์ ๊ตฌ์กฐ๋ถํด ํ ๋น์ด ์ฌ์ฉ๋๋ค.
- value: ํ์ฌ state ๊ฐ.
- setValue: state ๊ฐ์ ์ ๋ฐ์ดํธํ๋ ํจ์.
- ์ด๊ธฐ๊ฐ: state์ ์ด๊ธฐ ์ํ ๊ฐ. (= initial state)
๋ ๋๋ง
๐๋ ๋๋ง ํธ๋ฆฌ๊ฑฐ (์ธ์ ๋ ๋๋ง์ด ๋ฐ์ํ๋๊ฐ?)
- ์ปดํฌ๋ํธ ๋ด๋ถ์ state๊ฐ ๋ณ๊ฒฝ๋์์ ๋.
- ์๋ก์ด props๊ฐ ์ ๋ฌ๋์์ ๋.
- ์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ๋ ๋๋ง์ด ๋ฐ์ํ์ ๋.
๐๋ฆฌ๋ ๋๋ง ๋์ ์๋ฆฌ
- React๋ state์ ์ฃผ์๊ฐ์ ํ์ธํ์ฌ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ ํ๋จ.
- ๋ถ๋ณ์ฑ ์ ์ง๊ฐ ์ค์:
- ๋ฐฐ์ด์ push๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋จ.
- ์๋ก์ด ๊ฐ์ฒด ๋๋ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝ ํ set ํด์ผ React๊ฐ ์ด๋ฅผ ๊ฐ์งํ์ฌ ๋ฆฌ๋ ๋๋ง ์คํ.
DOM, Virtual DOM
๐Virtual DOM์ด๋?
- ์ค์ DOM์ ๋ณต์ฌ๋ณธ์ผ๋ก, ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ๋กํ๋ ๊ฐ์ ์์คํ .
- ์๋ ๋ฐฉ์:
- ๋ณ๊ฒฝ ์ฌํญ์ Virtual DOM์ ์ ์ฅ.
- ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์ค์ DOM์ ๋ฐ์.

๐๋น๊ต
- ์ค์ DOM:
- ๋ณ๊ฒฝ ์ฌํญ๋ง๋ค ํ๋ฉด์ ๊ฐฑ์ ํด์ผ ํจ.
- ๊ฐ์ DOM:
- Batch Update๋ฅผ ํตํด ํ ๋ฒ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์.
- ํจ์จ์ ์ผ๋ก ๋ ๋๋ง ์ฒ๋ฆฌ.
๐React์ ๋ ๋๋ง ๊ณผ์
- React๊ฐ Virtual DOM์ ์ ๋ฐ์ดํธ.
- Virtual DOM๊ณผ ์ค์ DOM์ ๋น๊ต(Diffing).
- ๋ณ๊ฒฝ ์ฌํญ์ ์ค์ DOM์ ๋ฐ์.
- ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ์์ง์ด ํ๋ฉด์ ๊ฐฑ์ .
'Language > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [โ๏ธ] useState : ํจ์ํ ์ ๋ฐ์ดํธ (0) | 2025.01.30 |
|---|---|
| [โ๏ธ] CSS in JS(Styled-components, GlobalStyles (1) | 2025.01.27 |
| [โ๏ธ] useState() ๋ฅผ ์ ์ธ๊น? (0) | 2025.01.22 |
| [โ๏ธ] ์นด์ดํฐ ์ฑ ๋ง๋ค์ด๋ณด๊ธฐ (0) | 2025.01.21 |
| [React ์ ๋ฌธ Day 1] ์ปดํฌ๋ํธ, JSX, ๋ถ๋ณ์ฑ ๊ฐ๋จ ์ ๋ฆฌ (0) | 2025.01.20 |