Hook์ ํด๋์ค ์ปดํฌ๋ํธ์์๋ง ์ฌ์ฉํ ์ ์์๋ state(์ํ)๊ด๋ฆฌ์ lifecycle(๋ผ์ดํ์ฌ์ดํด)๊ด๋ฆฌ ๊ธฐ๋ฅ์ ํจ์ ์ปดํฌ๋ํธ์์๋ ์ฌ์ฉํ ์ ์๋๋ก ์ฐ๋ํด์ฃผ๋ ํจ์๋ฅผ ์๋ฏธ
Hook๋ค์ ๋ชจ์์ Hooks๋ผ๊ณ ํ๋ค.
ํด๋์ค ์ปดํฌ๋ํธ์ ํจ์ ์ปดํฌ๋ํธ
๋ฆฌ์กํธ์์ ์ปดํฌ๋ํธ๋ ํด๋์คํ๊ณผ ํจ์ํ์ผ๋ก ๋๋ ์ง๋ค.
์ด์ฐฝ๊ธฐ์๋ class ์ปดํฌ๋ํธ์์๋ง ์ฌ์ฉํ ์ ์๋ ๊ธฐ์ ๋ค์ด ์์๊ธฐ์ ๋งค๋ฒ class ์ปดํฌ๋ํธ๋ง์ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ค.
๊ทธ๋ฌ๋ classํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ ๋ฌธ์ ์ ๋ค์ด ์๊ฒผ๋ค.
1. ์ปดํฌ๋ํธ ๊ฐ์ ๋ก์ง์ฌ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค.
2. ์ฝ๋๊ฐ ๋ณต์กํด์ง๋ค.
Hook์ ๋ฑ์ฅ !!
React 16.8๋ฒ์ ์์ ์๋ก ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด๋ค.
์ด์ ์ ๋ฆฌ์กํธ๊ฐ ๊ฒช๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํด์ฃผ๋ฉฐ ํจ์ ์ปดํฌ๋ํธ์์๋ ์ํ๊ฐ ์ ๊ทผ๊ณผ ์์ ์์์ ์ ๊ทผ์ด ๊ฐ๋ฅํด์ก๋ค.
๋ฆฌ์กํธ๋ useState, useEffect ๊ฐ์ ๋ด์ฅ Hook๋ค์ ์ ๊ณตํ๋ค.
Hook์ ํธ์ถํ ์ ์๋ ๊ณณ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ํจ์ ์ปดํฌ๋ํธ ๋ด๋ถ
2. custom Hook ๋ด๋ถ
์ ๋๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ ๊ณณ์์๋ Hook์ ํธ์ถํ ์ ์๋ค.
ํด๋์ค ์ปดํฌ๋ํธ์ ๋ฉ์๋ ๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ Javascript ํจ์์์๋ ์ฌ์ฉํ ์ ์๋ค.
Hook์ ํญ์ ํจ์ ์ปดํฌ๋ํธ ๋ด์ ์ต์์์์๋ง ํธ์ถํด์ผ ํ๋ค.
์ด๋ฌํ ๊ท์น์ ๋ฐ๋ฅธ๋ค๋ฉด ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง๋ค ํญ์ ๋์ผํ ์์๋ก ์ฌ๋ฌ ๊ฐ์ Hook์ด ํธ์ถ๋๋ ๊ฒ์ ๋ณด์ฅํ ์ ์๋ค.
๋ํ ๋ฐ๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ์ค์ฒฉ๋ ํจ์ ๋ด์์๋ Hook์ ํธ์ถํ๋ฉด ์๋๋ค.
ํน์ ์กฐ๊ฑด์ ๋ถํฉํ์ง ์๋ ๊ฒฝ์ฐ Hook์ ํธ์ถํ์ง ์๊ฒ ๋๊ณ , Hook์ด ์ฌ์ฉ๋ ์์๊ฐ ์์ด๊ธฐ ๋๋ฌธ์ด๋ค.