React Hooks
React Hooks
ํจ์ํ ์ปดํฌ๋ํธ์ State๋ฅผ ์ค(hooks๋ react์ state machine์ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ)
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ
ํด๋์ค ์ปดํฌ๋ํธ์ ๋นํด ์งง์ ์ฝ๋(this์ ๊ฐ์ ๊ท์น์์)
์ดํดํ๊ธฐ ์ฝ๊ณ ์ง๊ด์
useState
const [value, modifierValue] = setState();
Array๋ฅผ ๋ฆฌํดํจ
modifier๋ re-renderํจ
useInput(custom hook)
useEffect
componentDidMount, componentDidUpdate, componentWillUnmount์ ๊ธฐ๋ฅ์ ํ๋ hook
๋๋ฒ์งธ ์ธ์๋ก dependency๋ฅผ ๋ฐ๊ณ dependency๊ฐ ์ ๋ฐ์ดํธ ๋๋์ง์ ๋ฐ๋ผ์ ์ฒซ๋ฒ์งธ ์ธ์๋ก ๋ฐ์ function์ด ์คํ๋จ
CleanUp function(return function)์ผ๋ก componentWillUnmount ์ญํ ์ ํจ
useContext
const value = useContext(MyContext);
context ๊ฐ์ฒด(React.createContext)๋ฅผ ๋ฐ์ ๊ทธ context์ ํ์ฌ ๊ฐ์ ๋ฐํ
context์ ํ์ฌ ๊ฐ์ ํธ๋ฆฌ ์์์ ํด๋น Hook์ ํธ์ถํ ์ปดํฌ๋ํธ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋
<MyContext.Provider value={value}>
์ ์ํด ๊ฒฐ์ useContext๋ฅผ ํธ์ถํ ์ปดํฌ๋ํธ๋ context๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ํญ์ ๋ฆฌ๋ ๋๋ง ๋จ(memoization์ ์ฌ์ฉํด ์ต์ ํ)
useRef
reference๋ ๊ธฐ๋ณธ์ ์ผ๋ก components์ ์ด๋ค ๋ถ๋ถ์ ์ ํํ ์ ์๋ ๋ฐฉ๋ฒ
React Lifecycle
๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ ๋ผ์ดํ์ฌ์ดํด(์๋ช ์ฃผ๊ธฐ)๋ฅผ ๊ฐ์ง
ํฌ๊ฒ ์ธ๊ฐ์ง ์ํ๋ก ๋๋ ์ ์์ ์์ฑ๋ ๋(๋ง์ดํธ) / ์ ๋ฐ์ดํธํ ๋(state๊ฐ ๋ฐ๋ ๋ / props๊ฐ ๋ฐ๋ ๋ / ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋ ๋) / ์ ๊ฑฐํ ๋(์ธ๋ง์ดํธ)
Render ๋จ๊ณ
constructor : ํด๋์คํ์์ ์ด๊ธฐ state๋ฅผ ์ ํ ๋ ์ฌ์ฉ
useState : hooks์์ ์ด๊ธฐ state๋ฅผ ์ ํ ๋ ์ฌ์ฉ
shouldComponentUpdate : ํด๋์คํ์์ props๋ state๋ฅผ ๋ณ๊ฒฝํ์ ๋ ๋ฆฌ๋ ๋๋ง ํ ์ง ๋ง์ง ๊ฒฐ์ ํ๋ ๋ฉ์๋(์ฑ๋ฅ์ ์ํด์๋ PureComponent์ฌ์ฉ์ ์ถ์ฒ)
React.memo / useMemo : hooks์์ ๋ ๋๋ง ์ฑ๋ฅ์ ๊ฐ์ ํ ๋ ์ฌ์ฉ
render : ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ ๋ ํ์ํ ์ ์ผํ ํ์ ๋ฉ์๋(hooks์์๋ ํ์์์, ํจ์ ์ปดํฌ๋ํธ ๋ณธ์ฒด ์์ฒด)
Commit ๋จ๊ณ
DOM์ ์ฌ์ฉํ์ฌ ๋ถ์ํจ๊ณผ๋ฅผ ์คํํ๊ณ ์ ๋ฐ์ดํธ๋ฅผ ์์ฝ
React DOM ๋ฐ refs ์ ๋ฐ์ดํธ
componentDidMount : ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ์ฒซ ๋ ๋๋ง์ ๋ง์น ํ ์คํ
useEffect : hooks์์ ์์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ
componentsDidUpdate : ๋ฆฌ๋ ๋๋ง์ด ์๋ฃ๋ ํ ์คํ
componentsWillUnmount : ์ปดํฌ๋ํธ๋ฅผ DOM์์ ์ ๊ฑฐํ ๋ ์คํ
useEffect CleanUp function : hooks์์ ์์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ
Last updated