useState
Component๊ฐ ๊ฐ์ง๊ณ ์๋ ์ํ๊ฐ์ผ๋ก ์ปดํฌ๋ํธ ๋ด๋ถ์์์ ๋์ ๋ฐ์ดํฐ์ ๋๋ค.
ํํ ๋ง์ด ์ฌ์ฉ๋๋ ๋ณ์๋ผ๊ณ ์๊ฐํ๋ฉด๋์ง๋ง, ์๋์๊ฐ์ ํน์ง์ด ์๊ธฐ ๋๋ฌธ์ ๋ณ์๋์ ๋๋๋ง ๊ฐ์ง ๋ง์ด ๋ค๋ฆ ๋๋ค.
const [๋ณ์์ด๋ฆ, set๋ณ์์ด๋ฆ] = useState(์ด๊ธฐ๊ฐ);
set๋ณ์์ด๋ฆ์ ๋ค๋ฅธ ์ด๋ฆ์ ๋ฃ์ด๋ ๋๊ณ , ์ ์ธํ์ง ์์๋ ์๊ด์์ต๋๋ค.
๋ณ์์ ๊ฐ์ ์ง์ ๋์ ํ๋ ๊ฒ์ด ์๋๋ผ, set์ ํตํด ๊ฐ์ ๋์ ํด์ค๋๋ค.
- state๊ฐ์ด ๋ณํ๊ฒ ๋๋ฉด UI๊ฐ ๋ฆฌ๋ ๋๋ง ๋๋ค.
- useState๋ ๋น๋๊ธฐ๋ก ๋์ํ๋ค.
์
inputํ๊ทธ์ ๊ฐ์ ์ ๋ ฅํด ์ฃผ๋ฉด์ content๋ผ๋ state๊ฐ์ ํ์ธํ ์ ์๊ฒ ์์ฑํ์๋ค.
content์ ์ธํ ๋๋ "" ๋น๋ฌธ์์ด๋ก ์ด๊ธฐ๊ฐ์ ์ค์ ํด ์ฃผ๊ณ ,
onChangeํจ์์ event๊ฐ์ฒด๋ฅผ ํ์ฉํ์ฌ content๊ฐ์ ์ ๋ฐ์ดํธํด์ค๋๋ค.
๋ณ์์ state์ ์ฐจ์ด
์ฒ์ React์ hook์ ์ ํ๊ฒ ๋๋ค๋ฉด, ์ ๊ตณ์ด useState๋ฅผ ์ฌ์ฉํด์ ๋ณ์์ ๊ฐ์ ๋ฐ๊พธ๋ ๊ท์ฐฎ์์ ๊ฐ์ํด์ผ ๋๋์ง ํ ๋ฒ์ฏค ์๊ฐํ ์ ์์ต๋๋ค. (์ ๋ ๊ทธ๋ฌ์ต๋๋ค...)
๋ฐ๋๋ผ JS๋ JQuery ๋ฑ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ DOM์ ์ง์ ์ ๊ทผํ์ฌ value๋ text๊ฐ์ ์ ๋ ฅํ๋ฉด์ ๊ตฌํํ์ง๋ง,
๋ฆฌ์กํธ์์๋ state๊ฐ์ setState๋ก ์ ๋ ฅํด ์ฃผ๋ฉด์ ํ๋ฉด์ ๋ฆฌ๋ ๋๋ง ํ๋ฉด์ ํํํ๊ฒ ๋๋ค.
๊ทธ๋ ๋ค๊ณ ๋ฆฌ์กํธ์์ ์ผ๋ฐ์ ์ธ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋ ๊ฑด ์๋๋๋ค.
๋ค๋ง state๊ฐ์ด ๋ณํ๊ฒ ๋๋ฉด ํ๋ฉด์ด ๋ฆฌ๋ ๋๋ง ๋๋ฉด์ ํ๋ฉด์ ๋ค์ ๊ทธ๋ฆฌ๊ฒ ๋๊ณ (๋ฆฌ์กํธ์ ๊ธฐ๋ณธ ์๋ฆฌ), ๋ณ์๊ฐ ๊ณ์ ์ด๊ธฐํ๋๊ธฐ ๋๋ฌธ์ ์ํฉ์ ๋ง๊ฒ ์ ์ฌ์ฉํด์ผ ๋๋ค.
์
์ ์์ค์ localValue๋ผ๋ letํ์ ์ ๋ณ์๋ฅผ ํ๋ ์ ์ธํ์์ต๋๋ค.
์ด๊ธฐ๊ฐ์ test๋ก ํ์๊ณ , inputํ๊ทธ์ onChangeํจ์๊ฐ ๋์ํ ๋ setState์ ๊ฐ์ด ๊ฐ์ ๋ฃ์ด์คฌ์ต๋๋ค.
state๋ก ์ ์ธํ content์๋ ๋ฌ๋ฆฌ ํ๋ฉด์ ๊ทธ๋ ค์ง๋ ๊ฐ์ ๊ณ์ test์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ ์์์ ์ค๋ช ํ ๋ด์ฉ๊ณผ ๊ฐ์ด state๊ฐ์ด ๊ณ์ ๋ฐ๋๊ฒ ๋๋ฉด์ ํ๋ฉด์ด ๋ฆฌ๋ ๋๋ง ํ๊ฒ ๋๋๋ฐ,
๋ฆฌ๋ ๋๋ง์ด ์ด๋ด ๋ ๋๋ง๋ค Contentํจ์๊ฐ ๋ค์ ์คํ๋๊ฒ ๋๊ณ ,
์คํ๋ ๋๋ง๋ค localValue๊ฐ ์ฌ์ ์ ๋์ด e.target.value๊ฐ ์ถ๊ฐ๋ ๊ฐ์ด ์๋ let localValue = "test"๊ฐ ๊ณ์ ์คํ๋๋ฉด์
test๋ก ์ ์๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ๋ณํ์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ๋๋ค.
(์ ํํ๋ ํ ๊ธ์ ์ ๋ ฅํ ๋ localValue์ ๊ฐ์ ๋ณํ์ง๋ง, ๋ฆฌ๋ ๋๋ง ๋๋ฉด์ ์ด๊ธฐํ๋จ)
useState๋ ๋น๋๊ธฐ๋ก ๋์ํ๋ค.
์์๋ก ์์ฑํ ์ฝ๋๋ ๊ฐ๋จํ์ง๋ง, ์ค์ ํ์ด์ง๋ฅผ ๊ตฌํํ๋ฉด ์๋ง์ state๊ฐ ์กด์ฌํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด state๊ฐ์ด ๋ณํ ๋๋ง๋ค ๋ฆฌ๋ ๋๋ง์ด ๋ฐ์ํ๊ฒ ๋๋๋ฐ, ๊ทธ ๋ง์ ๊ฐ๋ค์ด ์ค์๊ฐ์ผ๋ก ๋ณํ์ฌ ๋๊ธฐ๋ก ๋ฆฌ๋ ๋๋ง์ด ๋ฐ์ํ๋ฉด ์๋ฌด๋ฆฌ ๊ฐ์ DOM์ ์ฌ์ฉํ๋๋ผ๋ ์ฑ๋ฅ์ ํ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ๋น๋๊ธฐ๋ก batch๋ฅผ ํตํด ๋์ํ๊ฒ๋ฉ๋๋ค.
์๋ ๊ฒ์๊ธ์์ ๊ฐ์ DOM๊ด๋ จํด์ react ๋์ ์๋ฆฌ๋ฅผ ๋ค์ ํ๋ฒ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
2023.06.04 - [Front-End/React] - React] React ๋...?
์
๋ง์ ๋ธ๋ก๊ทธ๋ ์ธํฐ๋ท์ ๋์๋ค๋๋ counter๋ฅผ ์์๊ฐ ์์ง๋ง, ๊ทธ๋๋ ์กฐ๊ธ์ ๋ค๋ฅด๊ฒ string์ผ๋ก ํด๋ดค์ต๋๋ค.
(ํฌ๊ฒ ๋ค๋ฅธ ๊ฑด ์์ง๋ง...)
๋ง์ง๋ง ๊ธ์์ธ "๋ค"๋ง ์ถ๊ฐ๋๊ณ ๋๋จธ์ง๋ ์ถ๊ฐ๋์ง ์๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
๋งจ ์์์ ์ ์๋ฏ์ด setState๋ ๋น๋๊ธฐ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ content์ ์ถ๊ฐ๋ ๊ฐ์ ๊ธฐ์ตํ์ง ๋ชปํ๊ณ ๋ง์ง๋ง "๋ค" ๋ฌธ์๋ง ์คํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ๋ฉ๋๋ค.
ํด๋น ๊ธ์ useState๋ฅผ ์ค๋ช ํ๋ ค๊ณ ์์ฑํ ๊ฒ์ด๊ณ ,
๋ง์ง๋ง์ ๋ค๋ค๋ useState๊ฐ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌ๋ ๊ฒ์ ์ธ์งํ๊ณ ,
useState๋ฅผ ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฑด ๋ฐ๋ก ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.
๊ฐ๋จํ ํด๊ฒฐ๋ฐฉ๋ฒ์ useEffect๋ ์ฝ๋ฐฑํจ์ ํ์ฉ...
'Front-End > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React] Hook : useEffect (0) | 2023.06.20 |
---|---|
React] Hook (0) | 2023.06.20 |
React] Hook : props (1) | 2023.06.06 |
React] Import & export (0) | 2023.06.06 |
React] Component & JSX (0) | 2023.06.04 |