[React] - Hook

Na Jeongยท2022๋…„ 11์›” 25์ผ
0

react

๋ชฉ๋ก ๋ณด๊ธฐ
1/11
post-thumbnail

๐Ÿ“”Hook์ด๋ž€?

โœ๏ธ Hook์˜ ์ •์˜

Hook์€ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ state(์ƒํƒœ)๊ด€๋ฆฌ์™€ lifecycle(๋ผ์ดํ”„์‚ฌ์ดํด)๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๋™ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธ
Hook๋“ค์˜ ๋ชจ์Œ์„ Hooks๋ผ๊ณ  ํ•œ๋‹ค.

โœ๏ธ Hook ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์™€ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ
๋ฆฌ์•กํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ๋Š” ํด๋ž˜์Šคํ˜•๊ณผ ํ•จ์ˆ˜ํ˜•์œผ๋กœ ๋‚˜๋ˆ ์ง„๋‹ค.
์ดˆ์ฐฝ๊ธฐ์—๋Š” class ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ๋“ค์ด ์žˆ์—ˆ๊ธฐ์— ๋งค๋ฒˆ class ์ปดํฌ๋„ŒํŠธ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ classํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ ๋ฌธ์ œ์ ๋“ค์ด ์ƒ๊ฒผ๋‹ค.
1. ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ๋กœ์ง์žฌ์‚ฌ์šฉ์ด ๋ถ€๊ฐ€๋Šฅํ•˜๋‹ค.
2. ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค.

Hook์˜ ๋“ฑ์žฅ !!
React 16.8๋ฒ„์ „์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ด๋‹ค.
์ด์ „์— ๋ฆฌ์•กํŠธ๊ฐ€ ๊ฒช๋˜ ๋ฌธ์ œ๋“ค์€ ํ•ด๊ฒฐํ•ด์ฃผ๋ฉฐ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์ƒํƒœ๊ฐ’ ์ ‘๊ทผ๊ณผ ์ž์‹ ์š”์†Œ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.
๋ฆฌ์•กํŠธ๋Š” useState, useEffect ๊ฐ™์€ ๋‚ด์žฅ Hook๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

โœ๏ธ Hook์˜ ์žฅ์ 

  1. ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์ƒํƒœ ๊ด€๋ จ ๋กœ์ง์„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ด๊ฒƒ์„ ์ด์šฉํ•ด ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•จ.
    • ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์€ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๋‹ค.
  2. ๊ณ„์ธต์˜ ๋ณ€ํ™” ์—†์ด ์ƒํƒœ ๊ด€๋ จ ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ๏ธ Hook ์‚ฌ์šฉ ๊ทœ์น™

โ—๏ธํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ํ˜ธ์ถœ

Hook์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€
2. custom Hook ๋‚ด๋ถ€
์œ„ ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•œ ๊ณณ์—์„œ๋Š” Hook์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค.
ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์˜ ๋ฉ”์„œ๋“œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ Javascript ํ•จ์ˆ˜์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

โ—๏ธ์ตœ์ƒ์œ„์—์„œ ํ˜ธ์ถœ

Hook์€ ํ•ญ์ƒ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์˜ ์ตœ์ƒ์œ„์—์„œ๋งŒ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.
์ด๋Ÿฌํ•œ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค๋ฉด ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋  ๋•Œ๋งˆ๋‹ค ํ•ญ์ƒ ๋™์ผํ•œ ์ˆœ์„œ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Hook์ด ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
๋˜ํ•œ ๋ฐ˜๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ์ค‘์ฒฉ๋œ ํ•จ์ˆ˜ ๋‚ด์—์„œ๋Š” Hook์„ ํ˜ธ์ถœํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
ํŠน์ • ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Hook์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ฒŒ ๋˜๊ณ , Hook์ด ์‚ฌ์šฉ๋œ ์ˆœ์„œ๊ฐ€ ์„ž์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

profile
๋Š์ž„์—†์ด ๋…ธ๋ ฅํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž (โธโธโขโธโธ) เท†

0๊ฐœ์˜ ๋Œ“๊ธ€