๋ฆฌ์กํธ์ ํต์ฌ!
State๋ props์ฒ๋ผ App ์ปดํฌ๋ํธ์ ๋ ๋๋ง ๊ฒฐ๊ณผ๋ฌผ์ ์ํฅ์ ์ฃผ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์๋ ๊ฐ์ฒด์ง๋ง, props๋ (ํจ์ ๋งค๊ฐ๋ณ์์ฒ๋ผ) ์ปดํฌ๋ํธ์ ์ ๋ฌ๋๋ ๋ฐ๋ฉด state๋ (ํจ์ ๋ด์ ์ ์ธ๋ ๋ณ์์ฒ๋ผ) ์ปดํฌ๋ํธ ์์์ ๊ด๋ฆฌ๋๋ค๋ ์ฐจ์ด๊ฐ ์์
๐ props๋ฅผ ์ฌ์ฉํ๋๋ฐ๋ state๋ฅผ ์ฌ์ฉํ๋ ์ด์ :
์ฌ์ฉํ๋ ์ชฝ๊ณผ ๊ตฌํํ๋ ์ชฝ์ ์ฒ ์ ํ๊ฒ ๋ถ๋ฆฌ์์ผ์ ์์ชฝ์ ํธ์์ฑ์ ๊ฐ์ ๋๋ชจํ๋ ๊ฒ
โ๏ธ state๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ hook : useState()
1) import {useState}
2) useState(๋ณด๊ดํ ์๋ฃ)
3) let[์๋ช
, ์๋ช
]
useState() ํจ์๋ฅผ ํธ์ถํ๋ฉด ๋ฐฐ์ด์ ๋ฐํํ๋ค.
- 1๋ฒ์งธ ์์๋ ํ์ฌ ์ํ ๊ฐ ๋ณ์
- 2๋ฒ์งธ ์์๋ ์ํ ๊ฐ์ ๊ฐฑ์ ํด์ฃผ๋ Setter ํจ์
- useState ๊ดํธ ์์ ๊ฐ์ ์ํ์ ์ด๊ธฐ ๊ฐ
ref.current๋ value๊ฐ์ ๊ฐ๊ฒ ๋๋ค. {current: value}
์ธ์ ๋ ์ํ๋ ๊ฐ์ผ๋ก ๋ฐ๊ฟ ์ ์๋ค. ex. ref.current = "hello"
๋ฐํ๋ ref๋ ์ปดํฌ๋ํธ์ ์ ์์ ์ฃผ๊ธฐ๋ฅผ ํตํ์ด์ ์ ์ง๊ฐ ๋๋ค.
์ฆ, ์ปดํฌ๋ํธ๊ฐ ๊ณ์ํด์ ๋ ๋๋ง๋์ด๋ ์ปดํฌ๋ํธ๊ฐ ์ธ๋ง์ดํธ ๋๊ธฐ ์ ๊น์ง๋ ๊ฐ์ ์ ์งํ๋ค.
- Mount (ํ๋ฉด์ ์ฒซ ๋ ๋๋ง)
- Update (๋ค์ ๋ ๋๋ง)
- Unmount (ํ๋ฉด์์ ์ฌ๋ผ์ง๋)
๐์์ ์ํฉ๋ค์์ ํน์ ์์ ์ ์คํ์์ผ ์ฃผ๊ณ ์ถ๋ค๋ฉด useEffect๋ฅผ ์ฌ์ฉ!
useEffect(()=>{}): ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง๋ค ์คํuseEffect(()=>{}, []):[ ] -> ์ฆ dependency์ ๊ฐ์ด ์
๋ฐ์ดํธ ๋ ๋๋ง ์คํ.