CustomHook
๊ฐ๋ฐํ๋ค ๋ณด๋ฉด ๊ฐ์ ๋ก์ง์ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ์๊ธฐ๊ฒ ๋ฉ๋๋ค.
์ด๋ด ๋ ๋ฐ๋ณต๋๋ ์ฝ๋๋ฅผ ์์ ๊ธฐ ์ํด ์ง์ hook์ ๋ง๋ค์ด ์ฌ์ฉํ๋ฉด ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๋ฟ๋ง ์๋๋ผ, ๋ก์ง์ด ๋๋ฌด ๊ธธ๊ฑฐ๋ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง ๊ฒฝ์ฐ๋ ์๊ณ ,
๋ก์ง๊ณผ ํ๊ทธ๋ค ์ฌ์ด์ ๊ตฌ๋ถ์ด ์ง๊ณ ์ถ์ ๋ ์ฌ์ฉํด๋ ์์ฃผ ์ ์ฉํฉ๋๋ค.
(ํจ์๋ฅผ ์ชผ๊ฐ์ ๋ง๋ ๋ค๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ hook์ ์ฌ์ฉํ ๋ฟ...)
์
name์ด๋ email ๋ ๊ฐ์ state๋ฅผ ๋ง๋ค์์ต๋๋ค.
name์ ์ง์ ๋ง๋ useInput์ด๋ผ๋ ์ปค์คํ ํ ์ ์ฌ์ฉํ์๊ณ ,
email์ ์ปดํฌ๋ํธ์์ ์์ฑํ์์ต๋๋ค.
๋ก์ง์ ๋ ๊ฐ์ ์ฐจ์ด์ ์ด ์๋ ์ํฉ์ ๋๋ค.
๋ง์ฝ useInput์ด๋ผ๋ ์ปค์คํ ํ ์ ๋ง๋ค์ง ์์๋ค๋ฉด, email์ ๊ฐ์ ํ์ผ ํ ๋ ์ฌ์ฉ๋๋ emailChange, uesEffect์์ ์ฐ์ console.log๋ฅผ state๋ณ๋ก ๊ตฌ๋ถํด์ผ ๋ ๊ฒ์ ๋๋ค.
์ถ๊ฐ๋ก ๋น๋ฐ๋ฒํธ, ์ฃผ์ ๋ฑ ์ข ๋ ๋ค์ํ inputํ๊ทธ๊ฐ ์์๋ค๋ฉด, ๊ฐ๊ฐ ๋ค ๋ง๋ค์ด์ ์ง์ ํด ์ค์ผ ๋์ ๊ฒ๋๋ค.
์ด๋ ๊ฒ ๋ฐ๋ณต๋๋ ์ฝ๋๋ฅผ ์์ ๊ธฐ ์ํด useInput์ด๋ผ๋ ์ปค์คํ ํ ์ ๋ง๋ค์๊ณ , email state ๋ํ useInput์ผ๋ก ์ ์ธํด ์ฃผ๋ฉด, ๊ฐ์ํ์์ผ ๊ฐ๋ฐ์ ํ ์ ์์ ๊ฒ๋๋ค.
์ด์ฒ๋ผ ๋ฐ๋ณต๋๋ ์์ค๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด ๋ณดํต ๋ง์ด ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
๋ฟ๋ง ์๋๋ผ ์์์ ์ ์๋ ๋๋ก ๋จ์ํ ๋ก์ง์ ๊ตฌ๋ถ ์ง๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
(๋จ๋ฐํ ๊ฒฝ์ฐ, ์คํ๋ ค ํท๊ฐ๋ฆด ์๋ ์์ผ๋ ๊ทธ๊ฑด ๊ฐ๋ฐ์ ์ฌ๋ ๊ฒ...)
'Front-End > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React] Hook : useCallback & useMemo ์ธ์ ์ฌ์ฉํด์ผ ๋ ๊น? (0) | 2023.06.29 |
---|---|
React] Fragment <></> (0) | 2023.06.26 |
React] Hook : useContext ๋จ์ ํด๊ฒฐ (0) | 2023.06.26 |
React] Hook : useContext (0) | 2023.06.23 |
React] Hook : useState ๋น๋๊ธฐ โ ๋๊ธฐ ํ๋ ๋ฒ (0) | 2023.06.22 |