useReducer๋ ์ ์ญ ์ํ๋ ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ๊ณต์ ๋๋ ๋ณต์กํ ์ํ๋ฅผ ๊ด๋ฆฌํ ๋ ์ ์ฉํจ.
๊ฐ๋จํ๊ฑด useState๋ฅผ ์ฌ์ฉํจ. ๋๋ค ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ํ ์ด๋ผ๋๊ฑด ๋์ผํ๋ค.
#์์
- ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ์ ์ํ๋ฅผ ๋ํ๋ด๋ inputState์, ์ ํจ์ฑ ๊ฒ์ฌ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ isValid ์ํ๊ฐ ์๋ค๊ณ ๊ฐ์ .
- ์ด๋ inputState์ ๋ฐ๋ผ์ isValid๋ true, false๋ก ์ํ๊ฐ ๋ฌ๋ผ์ง๊ฒ๋๋ค. ๋ ์ํ๊ฐ์ด ์๋ก ์ฐ๊ฒฐ๋์ด์์.
- ์๋ด๋ useState๋ฅผ ๋๋ฒ ์์ฑํ๊ธฐ๋ณด๋ค, useReducer๋ฅผ ์ฌ์ฉํด๋ ๋๋ค๋๊ฑฐ์!
์ํ๋ฅผ ์ ์ํ ์ปดํฌ๋ํธ ๋ฐ๊นฅ์ reducer ํจ์๋ฅผ ์ ์ํ๋ค.
์ปดํฌ๋ํธ ๋ด๋ถ์ ์ํ๋ฅผ ์ ์ํ๊ณ ,
input์ value๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์คํ๋๋ ํธ๋ฆฌ๊ฑฐํจ์๋ ์ ์ํจ.
์ด๋, ํธ๋ฆฌ๊ฑฐํจ์๊ฐ ์คํ๋ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ๊ฐ reducer ํจ์์๊ฒ ์ ๋ฌ๋จ.
dispatch๋ to-be ์ํ๋ฅผ ์ ๋ฌํด์ฃผ๋ ๋ฐฐ๋ฌ์ ์ญํ !
# ์ ๋ฆฌ
inputChangeHandler ํจ์์์ dispatch๋ฅผ ํธ์ถํ ๋ ์ก์ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๋ฉด,
inputReducer ํจ์๊ฐ ๊ทธ ์ก์ ์ ์ฒ๋ฆฌํ๊ณ ์๋ก์ด ์ํ๋ฅผ ๋ฐํ.
์ด๋ ๊ฒ ์ํ๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค UI๊ฐ ์ ๋ฐ์ดํธ๋์ด ์ฌ์ฉ์์๊ฒ ์๋ก์ด ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๊ฒ.
'๐ป๊ฐ๋ฐ๊ณต๋ถ > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React Router์ Link ์ปดํฌ๋ํธ ์ฌ์ฉํ์ฌ ํ์ด์ง ์ด๋์ํค๊ธฐ (0) | 2024.02.06 |
---|---|
React ๋ฐฐ์ดํ์ ๋ฐ์ดํฐ useState ์ํ ์ ๋ฐ์ดํธ ์์(feat. axios) (0) | 2024.01.30 |
๋ถ๋ชจ/์์ ์ปดํฌ๋ํธ ๊ด๊ณ (0) | 2024.01.24 |