๐ŸŒช๏ธReact Hooks

#๏ธโƒฃReact Hooks

Hooks ๋Š” ๋ฆฌ์•กํŠธ v16.8 ์— ์ƒˆ๋กœ ๋„์ž…๋œ ๊ธฐ๋Šฅ์œผ๋กœ ๊ธฐ์กด Class ๋ฐ”ํƒ•์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š” ์—†์ด ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” useState, ๊ทธ๋ฆฌ๊ณ  ๋ Œ๋”๋ง ์งํ›„ ์ž‘์—…์„ ์„ค์ •ํ•˜๋Š” useEffect ๋“ฑ์˜ ๊ธฐ๋Šฅ ๋“ฑ์„ ์ œ๊ณตํ•˜์—ฌ ๊ธฐ์กด์˜ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ํ•  ์ˆ˜ ์—†์—ˆ๋˜ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.


์‚ฌ์šฉ ๊ทœ์น™

  1. ์ตœ์ƒ์œ„์—์„œ๋งŒ Hook์„ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ˜๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ์ค‘์ฒฉ๋œ ํ•จ์ˆ˜ ๋‚ด์—์„œ Hook์„ ์‹คํ–‰ํ•˜๋ฉด ์•ˆ๋œ๋‹ค. โ†’ ๋ Œ๋”๋ง๋  ๋•Œ๋งˆ๋‹ค ํ•ญ์ƒ ๋™์ผํ•œ ์ˆœ์„œ๋กœ Hook์ด ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค.

  2. React ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ Hook๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค. Hook์€ ์ผ๋ฐ˜์ ์ธ js ํ•จ์ˆ˜์—์„œ๋Š” ํ˜ธ์ถœํ•ด์„  ์•ˆ๋œ๋‹ค. ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋‚˜ custom hook์—์„œ๋Š” ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.


React Hooks ๋“ฑ์žฅ ๊ณ„๊ธฐ

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

  2. ๋ณต์žกํ•œ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ƒํƒœ ๊ด€๋ จ ๋กœ์ง์„ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ, ์ด๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ๋ณต์žก๋„๋ฅผ ์ฆ๊ฐ€์‹œ์ผฐ๋‹ค. React Hooks๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ ๊ด€๋ จ ๋กœ์ง์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์— ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

  3. Class์˜ ํ˜ผ๋ž€ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” JavaScript์˜ this ํ‚ค์›Œ๋“œ์™€ ํด๋ž˜์Šค ๊ตฌ์กฐ์— ๋Œ€ํ•œ ํ˜ผ๋ž€์ด ์žˆ์—ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•˜๊ณ  ์ฝ”๋“œ์˜ ์ดํ•ด์™€ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. React Hooks๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด ๋”์šฑ ๋ช…ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ React ๊ฐœ๋ฐœ์ง„์€ React Hooks๋ฅผ ๋„์ž…ํ•˜์—ฌ React ๊ฐœ๋ฐœ์˜ ๊ฐ„ํŽธ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ ์ž ํ–ˆ๋‹ค.


์ฐธ๊ณ  ์‚ฌ์ดํŠธ

React ๊ณต์‹ ๋ฌธ์„œ - Hook์˜ ๊ฐœ์š”

[React] ๋ฆฌ์•กํŠธ ํ›…์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ (React Hooks์ด๋ž€?)

Last updated