useState()
1. ๊ฐ์
๋ฆฌ์กํธ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ํ
์ ํ๋ ๋งํ์๋ฉด useState()
๊ฐ ๋ ๊ฒ์ด๋ค. useState()
๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด state๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ํ
์ด๋ค. ์ฆ, useState()
๋ฅผ ํตํด ๋์ ์ผ๋ก ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.
2. useState()๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค?!
์์ ์ปดํฌ๋ํธ๋ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์นด์ดํธ๋ฅผ ํ๋์ฉ ์ฆ๊ฐ์ํค๊ฑฐ๋ ๊ฐ์์ํค๊ณ ํ์ฌ์ ์นด์ดํธ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋จ์ํ ์ปดํฌ๋ํธ์ด๋ค.
ํ์ง๋ง ๋ฒํผ์ ๋๋ฌ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ, ๊ฐ์๋ฅผ ์ํค๋ฉด ์นด์ดํธ์ ๊ฐ์ด ๋ฐ๋์ง ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ณ์ number
๊ฐ์ด ๋ณํ์ง ์์์ ์ผ๊น? ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์คํ๋๋ ํจ์์ ์ฝ์๋ก number
๊ฐ์ ์ฐ์ด๋ณด๋ฉด ์๋์ ๊ฐ์ด ๊ณ์ ๋ณํ๋ ๊ฒ์ ์ ์ ์๋ค.
number
๊ฐ์ด ๊ณ์ํด์ ๋ณํ์ง๋ง ํ๋ฉด์ ๋ณํ number
๊ฐ์ด ๋ํ๋์ง ์๋ ์ด์ ๋ ๋ฆฌ์กํธ๊ฐ ์ฌ๋๋๋ง์ ํ์ง ์์์ ์ด๋ค.
number
์ ๊ฐ์ด ๋์ ์ผ๋ก ๊ณ์ํด์ ๋ณํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ useState()
๋ฅผ ์ฌ์ฉํด์ ํ
์ดํฐ๋ฅผ ๊ด๋ฆฌํด์ผ ํ๋ค.
3. useState() ์ฌ์ฉํ๊ธฐ
useState()
์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
const [๋ณ์๋ช , setํจ์๋ช ] = useState(์ด๊น๊ฐ); ๋ณดํต setํจ์ํ์ ๋ณ์๋ช ์์ set๋ฅผ ๋ถ์ธ๋ค. ์๋ฅผ๋ค์ด ๋ณ์๋ฅผ
name
์ด๋ผ๊ณ ์ง์์ผ๋ฉด setํจ์๋ช ์setName
์ผ๋ก ์ง๋๋ค. ์ด๊น๊ฐ์ ์ด๋ค ํ์ ์ผ๋ก ์ ํด๋ ๋๊ณ ์๋ต์ ํด๋ ๋๋ค. ์๋ต์ ํ์ ๋๋undefined
๊ฐ ๋๋ค.
useState()
๋ฅผ ์ฌ์ฉํ์ฌ ์์ Counter ์ปดํฌ๋ํธ์ number
๊ฐ์ ๊ด๋ฆฌํด๋ณด์.
์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ ํ๋ฉด +, - ๋ฒํผ์ ๋๋ฅผ ๋ ๋ง๋ค number
๊ฐ์ด ๋ฐ๋๊ฒ ๋๋ค.
์ฝ์์ฐฝ๋ ํจ๊ป ๋ณด๋ฉฐ ๋น๊ตํด๋ณด์.
ํ๋ฉด์๋ number
๊ฐ์ด 4๋ผ๊ณ ๋์ค์ง๋ง ์ฝ์์๋ ์ฆ๊ฐ / number: 3
์ด ์ฐํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋ inCrease()
ํจ์ ๋ด์์ ์ฝ์์ด ์ฐํ ํ number
๊ฐ์ด ๋ฐ๋๊ณ ๋์ ์ฌ๋ ๋๋ง์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, ์๋์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค๊ณ ๋ณผ ์ ์๋ค.
setNumber((prev) => prev + 1);
ํจ์ ์คํ (๋น๋๊ธฐ)console.log("์ฆ๊ฐ / number:", number);
ํจ์ ์คํnumber
๊ฐ์ด ๋ฐ๋๋ฉฐ ํ์ด์ง๊ฐ ์ฌ๋ ๋๋ง<h1>์นด์ดํธ: {number}</h1>
์ ๋ณํ๋number
๊ฐ์ด ์ ์ฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด! inCrease()
ํจ์๋ด์ consolo.log
์ ๋ณ๊ฒฝ๋ number
๊ฐ์ด ์ฐํ๊ฒ ํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํ ๊น? ์ฆ, ์ฌ๋ ๋๋ง์ด ๋๋ฉด์ ๋์์ ๋ณํ๋ state
๊ฐ(์ฌ๊ธฐ์๋ number)์ ๋ค๋ฅธ ํจ์๋ก ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ค์ ์ฑํฐ์์ ๋ฐฐ์ธ useEffect()
๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ์์ธํ ๋ด์ฉ์ useEffect()
์ฑํฐ์์ ๋ค๋ฃฌ๋ค.
4. setState()
setState()
๋ ๋ฆฌ์กํธ ํจ์ํ ์ปดํฌ๋ํธ ๋ด์ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ hooks์ธ useState()
๋ฅผ ํตํด ๋ฐํ๋๋ ํจ์์ด๋ค. setState()
๋ ์๋์ ๊ฐ์ ํน์ง์ด ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋๊ธฐ์ ์ผ๋ก ๋์ํ๋ค.
state ๊ฐ์ฒด๋ฅผ ๋๊ฑฐ์ค ์ ์์ ๋ฟ๋ง ์๋๋ผ ์๋ก์ด state๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ์ธ์๋ก ๋๊ฒจ์ค ์ ์๋ค.
setState()
์ ์ ๋ฌ์ธ์์ ๋ํด ์์ธํ ์ดํด๋ณด์
์๋๋ setState()
์ ํ์
์ ๋ํ๋ธ ์ฝ๋์ด๋ค.
์์ ๋ด์ฉ์ ์ ๋ฆฌํ์๋ฉด setState()
์ ์ ๋ฌ์ธ์๋ ๋ ์ข
๋ฅ๊ฐ ๋ค์ด๊ฐ ์ ์๋ค.
S: state๊ฐ ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋์ด์ ธ์ผ ํ๋ค๋ผ๋ ๊ทธ ๊ฐ์ ๋ฃ์ ์ ์๋ค.
((prevState: S) => S): ์ด์ ์ state๋ฅผ ์ธ์๋ก ๋ฐ๊ณ ์๋ก์ด state๋ฅผ ๋ฐํํ๋ ํจ์(์ฝ๋ฐฑํจ์)๋ฅผ ๋ฃ์ ์ ์๋ค.
3. useState ์ฌ์ฉํ๊ธฐ
์์๋ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ์ธ์๋ฅผ ๋ฃ์๋ค.
5. Conclusion
useState()
๋ ๋ค์์ ๋ฐฐ์ธuseEffect()
์ ํจ๊ป ๋ฆฌ์กํธ์์ ์์ฃผ ์ฌ์ฉํ๊ณ ์๋ ํ ์ด๋ค. ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ด๋ฏธ ์๊ณ ์๋ ๋ด์ฉ์ด๋ผ ๊ณต๋ถํ๊ณ ์ดํดํ๋ ๋ฐ์๋ ํฐ ์ด๋ ค์์ ๋๋ผ์ง ์์๋ค. ํ์ง๋งsetState()
ํจ์๊ฐ ๋น๋๊ธฐ๋ผ๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ๊ทธ ์ ์๋ ๊ทธ๋ฅstate
๊ฐ์ ๋ฐ๊พธ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํจ์๋ผ๋ ์ ๋๋ง ์๊ณ ์์๋ค. ํด๋น ๋ด์ฉ์ ๋ํ ํ์ต์ด ์๊ธฐ ์ ์๋ "์setState()
๋ฅผ ์ฌ์ฉํด์state
๊ฐ์ ๋ฐ๊พธ์๋๋ฐ ๋ฐ๋ก ์ ์ฉ์ด ๋์ง ์์๊น?"๋ผ๋ ๊ถ๊ธ์ฆ์ด ์์๋๋ฐ ๊ถ๊ธ์ฆ์ด ํด๊ฒฐ๋์ด์ ์์ด ๋ปฅ ๋ซ๋ฆฐ ๊ธฐ๋ถ์ด๋ค.๐
์ฐธ๊ณ
๋์ - ์ํ์ ์ฒ์ ๋ง๋ ๋ฆฌ์กํธ 7. useState ๋ฅผ ํตํด ์ปดํฌ๋ํธ์์ ๋ฐ๋๋ ๊ฐ ๊ด๋ฆฌํ๊ธฐ React์ setState() ์ ๋๋ก ์ฌ์ฉํ๊ธฐ
๐ 2022-07-26
Last updated