๐ React ์๋ช ์ฃผ๊ธฐ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ์ง ๋ง์ธ์.
Here is a video version of this post, if that's what you prefer.
ํด๋์ค ๊ตฌ์ฑ ์์๊ฐ ReactJs์ ์์ ๋(์์ง๋ ๊ทธ๋ ์ง๋ง ์๋ฌด๋ ๋ ์ด์ ์ข์ํ์ง ์์ต๋๋ค) ์ฐ๋ฆฌ๋ ๋ง์ดํธ, ๋ง์ดํธ ํด์ ๋ฐ ์๋ช ์ฃผ๊ธฐ ๋ฐฉ๋ฒ ์ธก๋ฉด์์ ๋ง์ด ์๊ฐํ์ต๋๋ค.
ํด๋์ค ๊ตฌ์ฑ ์์๊ฐ ๋ง์ดํธ๋ ๋๋ง๋ค ์์ฑ์ โ ๋ ๋๋ง โ DOM ๋ฐ refs ์ ๋ฐ์ดํธ โ componentDidMount ์์๋ก ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋๊ฐ ํธ์ถ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ React Hooks๊ฐ ๋ฑ์ฅํ๊ณ ์ฐ๋ฆฌ๋ ์ข ์์ฑ ๋ฐฐ์ด ์ธก๋ฉด์์ ์๊ฐํ๊ธฐ ์์ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ข ์ข ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฌป์ต๋๋ค.
What is the hooksย equivalentย toย [some lifecycle method]?
๋น ๋ฅธ ๋๋ต์ ํํฌ๊ฐ "๋ผ์ดํ์ฌ์ดํด"๊ด์ ์์ "์ํ ๋ฐ DOM๊ณผ์ ๋๊ธฐํ"๊ด์ ์ผ๋ก ์๊ฐํ๋ ํจ๋ฌ๋ค์ ์ ํ์ด๋ผ๋ ๊ฒ์ ๋๋ค.
์ด์ ํจ๋ฌ๋ค์์ ์ทจํ์ฌ ํํฌ์ ์ ์ฉํ๋ ค๋ ์๋๋ ์ ์๋ํ์ง ์์ผ๋ฉฐ ๋ฐฉํด๊ฐ ๋ ์ ์์ต๋๋ค.
useEffect(fn) // fn invoked on all updates
useEffect(fn, []) // invoked on mount
useEffect(fn, [a, b, c]) // invoked if any of the members of the array are updated
์์ ์ค๋ํซ์ React ํํฌ์ ๋ํด ์๊ฐํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด ์๋๋๋ค.
๋ผ์ดํ์ฌ์ดํด์ ์ฌ๋ผ์ก์ง๋ง ์ฐ๋ฆฌ๋ ์ฌ์ ํ ๋น dep ๋ฐฐ์ด์ด ์๋ useEffect๋ฅผ componentDidMount๋ก ์๊ฐํ๋ฉฐ ์ด๋ React Hooks์ ๋ํด ์๊ฐํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ์์ด ์๋๋๋ค.
์ด์ ๋ฐ์ ํํฌ์ ๋ํด ์๊ฐํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ์ ์ํ๊ณ ์ ํฉ๋๋ค.
์ํ ๋๊ธฐํ
๋ณด์ธ์, ๋ฌธ์ ๋ "์ด ํจ๊ณผ๊ฐ ์ธ์ ์คํ๋ฉ๋๊น?"๊ฐ ์๋๋ผ "์ด ํจ๊ณผ๊ฐ ๋๊ธฐํ๋๋ ์ํ"์ ๋๋ค.
useEffect(fn) // useEffect with no dep array, sync with all state
useEffect(fn, []) // useEffect with empty dep array, sync with no state
useEffect(fn, [stateA, stateB]) // useEffect with stateA and stateB in dep array sync with stateA and stateB.
์ด๊ฒ์ด ๋ฐ๋ก React Hooks์ ๋ํด ์๊ฐํด์ผ ํ๋ ๋ฐฉ์์ ๋๋ค.
์ด ์์์ด ๋์์ด ๋์ จ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ตฌ๋ ์ ํตํด ์ง์์ ๋ณด์ฌ์ฃผ์ธ์.
์ ๋ ๋ํ ์ฃผ๊ฐ ๋ด์ค๋ ํฐ๋ฅผ ์ด์ํ๊ณ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์์๋ ์ ์ ํจ๊ป ํ ์ ์์ต๋๋ค: https://www.getrevue.co/profile/8020lessons
๊ฐ์ฌํฉ๋๋ค!
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ React ์๋ช ์ฃผ๊ธฐ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ์ง ๋ง์ธ์.), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/swastikyadav/stop-thinking-about-react-lifecycle-methods-248ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค