
1. Props
Props๋ Properties์ ์ค์๋ง๋ก, ๋ฆฌ์กํธ์์๋ ์์ฑ์ ๋ํ๋ด๋ ๋ฐ์ดํฐ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- props๋ ์์ ์ปดํฌ๋ํธ์์ ํ์ ์ปดํฌ๋ํธ์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์ต๋๋ค.
- props๋ ํ์ ์ปดํฌ๋ํธ์์ ๊ฐ์ ์ง์ ์ ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค.
์ฆ, props๋ ๐ ์ปดํฌ๋ํธ๊ฐ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ๋ฐ์์จ ๋ฐ์ดํฐ์ ๋๋ค.

2. State
State๋ ์ผ๋ฐ์ ์ผ๋ก ์ปดํฌ๋ํธ์ ๋ด๋ถ์์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํด์ผํ ๋์ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ปดํฌ๋ํธ์์ ๋์ ์ธ ๊ฐ์ ์ํ(state)๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ํ๋กํผํฐ(props)์ ํน์ง์ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๊ฐ์ ๋ฐ๊ฟ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๊ฐ์ ๋ฐ๊ฟ์ผ ํ๋ ๊ฒฝ์ฐ๋ ๋ถ๋ช ์กด์ฌํ๋ฉฐ, ์ด๋ด๋ state๋ผ๋ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค.
- ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ์ฒด๋ก ๋ณดํต ์ด๋ฒคํธ์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
state๋ ์ด๋ค ์ปดํฌ๋ํธ์๋ง ํ์ ํ์ฌ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ฉฐ, ํด๋น ๋ฐ์ดํฐ๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
state๋ ์ฌ์ฉ์๊ฐ ์์ ๋กญ๊ฒ ์ ์ํ ์ ์์ผ๋ฉฐ, ์ผ๋ฐ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ด์ด์ผ ํฉ๋๋ค.
์ด๋ค ๊ฐ์ด ๋ ๋๋ง ๋๋ ๋ฐ์ดํฐ ํ๋ฆ ์์์ (์๋ฅผ ๋ค์ด, ํ์ด๋จธ์ ID) ์ฌ์ฉ๋์ง ์๋๋ค๋ฉด, ํด๋น ๊ฐ์ state์ ๋ฃ์ง ์์๋ ๋ฉ๋๋ค. ๊ทธ๋ฌํ ๊ฐ์ ์ปดํฌ๋ํธ ์ธ์คํด์ค์ ํ๋๋ก ์ ์ํ ์ ์์ต๋๋ค.
state์ ๊ฐ์ ์ง์ ๋ณ๊ฒฝํ๋ฉด ์ ๋ฉ๋๋ค. ์๋ํ๋ฉด ์ดํ ํธ์ถ๋๋ setState()๊ฐ ์ด์ ์ ์ ์ฉ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฎ์ด์ฐ๊ธฐ ๋๋ฌธ์
๋๋ค.
state ๊ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ์ (Immutable)์ธ ๋ฐ์ดํฐ๋ก ์ทจ๊ธํ๊ณ , state์ ๊ฐ์ ๋ณ๊ฒฝํ ๋๋ ๋ฌด์กฐ๊ฑด setState()๋ฅผ ์ด์ฉํด state์ ๊ฐ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
์ฆ, state๋ ๐ ์ปดํฌ๋ํธ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ ์ ๋๋ค.
state ์ ์ธ ๋ฐฉ๋ฒ
const [state, setState] = useState(initialState);
const [ ๋ณ๊ฒฝ ๋ ๋ฐ์ดํฐ ๊ฐ, ๋ฐ์ดํฐ ๋ณ๊ฒฝ ํจ์ ] = useState(์ด๊ธฐ๊ฐ);
3. ๋ฆฌ๋ ๋๋ง ๋ฐ์ ์กฐ๊ฑด
React ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง์ ์ํํ๋ ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Props๊ฐ ๋ณ๊ฒฝ๋์์ ๋
- State๊ฐ ๋ณ๊ฒฝ๋์์ ๋
- forceUpdate() ๋ฅผ ์คํํ์์ ๋
- ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋์์ ๋
1 ~ 3๋ฒ์ ๊ณผ์ ์ ํตํด ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ๋, ์์ ์ปดํฌ๋ํธ ๋ํ ๊ฐ์ ๊ณผ์ ์ผ๋ก ๋ ๋๋ง์ด ์งํ๋ฉ๋๋ค.
ํ์ง๋ง, ์ปดํฌ๋ํธ์์ ๋ ๋๋ง ๊ฒฐ๊ณผ์ ์ ํ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์ํ๊ฒ ๋๋ค๋ฉด, ๋ถํ์ํ ๋ ๋๋ง์ด ๋ฐ์ ํ๋ฏ๋ก ์ฑ๋ฅ ์์ค์ด ๋ฐ์ํฉ๋๋ค. ์ด๋ ๋ ๋๋ง์์ ์ํํ๋ ๋ก์ง์ด ๋ง์์๋ก, ๋ง์ ์ปดํฌ๋ํธ๋ฅผ ์ถ๋ ฅํ ์๋ก ์์ค์ ๋ฐฐ๊ฐ ๋ฉ๋๋ค.
4. References
State and Lifecycle โ React
A JavaScript library for building user interfaces
ko.reactjs.org
Components์ Props โ React
A JavaScript library for building user interfaces
ko.reactjs.org
React ๋ ๋๋ง ์ดํดํ๊ธฐ
React์ ๋ ๋๋ง ๊ณผ์ ๊ณผ ์๋ชป๋ ์๋๋ฆฌ์ค๋ก ์ธํ์ฌ ์ด๋ฅธ ์ต์ ํํ๋ ์ผ์ด์ค๋ฅผ ์ดํด๋ด๊ณผ ํจ๊ป ์ด๋ฅผ ๊ฐ์ ํ๋ฉด์, Hook์ผ๋ก๋ ์ด๋ ๊ฒ ์ฝ๊ฒ ํ ์ ์๋ค! ๋ฅผ ์ฌ๋ฌ๋ถ๊ป ์๊ฐํ๋ ค๊ณ ํฉ๋๋ค.
medium.com
'๐ฅ Front-End > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ชจ๋ ๋ฆฌ์กํธ Deep Dive๋ก Next.js 13 ๋ณ๊ฒฝ์ฌํญ ๋ชจ๋ํ๊ฒ ์์๋ณด๊ธฐ (1) | 2023.11.24 |
---|---|
๋ชจ๋ ๋ฆฌ์กํธ Deep Dive ํ๊ธฐ (1) | 2023.11.22 |