ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

https://ko.reactjs.org/docs/hooks-rules.html

 

 

 

 

 

Hook์€ ๋‹ค์Œ 2๊ฐ€์ง€ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.

 

 

1. ์ตœ์ƒ์œ„(at the top level)์—์„œ๋งŒ Hook ํ˜ธ์ถœ

๋ฐ˜๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ์ค‘์ฒฉ๋œ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์‹คํ–‰X

 

์กฐ๊ฑด๋ถ€๋กœ effect๋ฅผ ์‹คํ–‰ํ•˜๊ธธ ์›ํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์กฐ๊ฑด๋ฌธ์„ hook ๋‚ด๋ถ€์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

 

  useEffect(function persistForm() {
    // ๐Ÿ‘ ๋” ์ด์ƒ ์ฒซ ๋ฒˆ์งธ ๊ทœ์น™์„ ์–ด๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค
    if (name !== '') {
      localStorage.setItem('formData', name);
    }
  });

 

์ œ๊ณต๋œ lint ๊ทœ์น™์„ ํ™œ์šฉํ•˜๋ฉด ์ด ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ๋จ!

-> eslint-plugin-react-hooks

 

 

 

 

2. React ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ๋งŒ Hook ํ˜ธ์ถœ

์ผ๋ฐ˜ JS์—์„œ Hook ํ˜ธ์ถœ X

 

์ง์ ‘ ์ž‘์„ฑํ•œ custom Hook ๋‚ด์—์„œ๋Š” ํ›… ํ˜ธ์ถœ ๊ฐ€๋Šฅ

-> ๋‹ค์Œ ์žฅ์—์„œ Custom Hook ๊ณต๋ถ€ํ•˜์ž! ^_^

๋Œ“๊ธ€