React - Hooks

SANGKU OHยท2020๋…„ 9์›” 6์ผ
0
post-thumbnail

๐ŸšจHooks๋Š” ๋งˆ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค! ๊ทธ์ € ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค!

์™œ hooks?

์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด์—์„œ ์ƒํƒœ์™€ ๊ด€๋ จ๋œ ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๊ฐ€๋” ์ƒํƒœ ๊ด€๋ จ ๋กœ์ง์„ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ „ํ†ต์ ์ธ ๋ฐฉ๋ฒ•์ด ๋‘ ๊ฐ€์ง€ ์žˆ์—ˆ๋Š”๋ฐ, higher-order components์™€ render props๊ฐ€ ๋ฐ”๋กœ ๊ทธ๊ฒƒ์ž…๋‹ˆ๋‹ค. Custom Hook์€ ์ด๋“ค ๋‘˜๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์— ์ƒˆ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ๋„ ์ด๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

useState

const [state, setState] = useState(initialState);

์ƒํƒœ ์œ ์ง€ ๊ฐ’๊ณผ ๊ทธ ๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ๋กœ ๋ Œ๋”๋ง์„ ํ•˜๋Š” ๋™์•ˆ, ๋ฐ˜ํ™˜๋œ state(state)๋Š” ์ฒซ ๋ฒˆ์งธ ์ „๋‹ฌ๋œ ์ธ์ž(initialState)์˜ ๊ฐ’๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

setStateย ํ•จ์ˆ˜๋Š” state๋ฅผ ๊ฐฑ์‹ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ state ๊ฐ’์„ ๋ฐ›์•„ ์ปดํฌ๋„ŒํŠธ ๋ฆฌ๋ Œ๋”๋ง์„ ํ์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

useEffect

useEffect(didUpdate);
useEffect(() => {}, [count])

Effect Hook, ์ฆ‰ useEffect๋Š” ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ์ด๋Ÿฐ side effects๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. React class์˜ componentDidMount ๋‚˜ componentDidUpdate, componentWillUnmount์™€ ๊ฐ™์€ ๋ชฉ์ ์œผ๋กœ ์ œ๊ณต๋˜์ง€๋งŒ, ํ•˜๋‚˜์˜ API๋กœ ํ†ตํ•ฉ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐ŸšจuseEffect์— ์ „๋‹ฌ๋œ ํ•จ์ˆ˜๋Š” ํ™”๋ฉด์— ๋ Œ๋”๋ง์ด ์™„๋ฃŒ๋œ ํ›„์— ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ž!

profile
Prof.Google์„ ํ†ตํ•ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ด ๊ณณ์— insert ๐Ÿธ

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