03. React
1. ์ค๋์ ๊ฐ์ ์์ฝ
๋ฆฌ์กํธ = ์ํ๋ฅผ ์ ๊ณจ๋ผ๋ด๋ ๊ฒ์ด ํต์ฌ
์ํ๊ฐ ๋ณํ๋ ํน์ ์ปดํฌ๋ํธ๋ง ๋ถ๋ถ์ ์ผ๋ก ๋ฆฌ๋ ๋๋ง
์ํ๋?
๋ณํ, ๊ณ์ฐ, ์ฃผ์ ์ฌ๋ถ
2. ์ค๋ ๋ฐฐ์ด ๊ฒ
2-1. ์ํ๋
state as a snapshot useState๋ ๋น๋๊ธฐ์ธ์ค ์์์ง? ์๋ฐํ ๋งํ์๋ฉด ๋๊ธฐ! ํจ์ ์ปดํฌ๋ํธ ์์์ ์ ์ธ๋ ํจ์ ์ค ์ธ๋ถ ๋ณ์์ ๋ํ ์ ๊ทผ์ด ํ์ํ ํจ์๋ค์ ๋ชจ๋ ํด๋ก์ ธ!
2-2. ๋ ๋๋ง?
๋ฃจํธ๋ ธ๋๋ถํฐ ๋ณํ๋ ๊ฑฐ ๋ญ์ง ํ์ - diffing ์ฌ์กฐ์ reconciliation
2-3. ๋ฆฌ๋ ๋๋ง์ ์ธ์ ?
๋์ผํ ์์น์์ ๋์ผํ ๋ ธ๋ (์ด ๊ธฐ์ค์ ํ์ , props, ์ํ)๊ฐ ๋ ๋๋ง ์์ฒญ์ด ์ค๋ฉด, ์๋ก ๊ทธ๋ฆฌ๋ ๊ฒ ์๋๋ผ ์๋ ์๋๊ฑธ "์ ์ง" ํจ ๋ถ๋ชจ๋ ธ๋๊ฐ ๋ฆฌ๋ ๋๋ง ๋๋ฉด ๊ฐ์ด ์๋๊ฒ ํ๋ ค๋ฉด react.memo key = props๊ฐ ์๋ฐ๋์๋๋ฐ ๋ฆฌ๋ ๋๋ง ๋๋ ๊ฒ ๋ฐฉ์ง
2-4. ๋ฆฌ์กํธ ์ฑ๋ฅ ์ต์ ํ
๋ฆฌ๋ ๋๋ง ํ์๋ฅผ ์ค์ด๊ธฐ = ์ํด๋ ๋๋ ์ ๋ค์ ์ ์ ํ ๊ฑด๋ ๋ฐ๊ธฐ
React.memo: props๊ฐ ๋ณ๊ฒฝ๋์๋์ง ํ์ธํ๊ณ , ์๋๋ผ๋ฉด ๊ฑด๋๋
์ด ๋, ๋ณ๊ฒฝ๋์๋ค์ ๊ธฐ์ค์ === (์์ ๋น๊ต)
์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ฒด์ ๊ฐ๋ณ ํ๋๋ฅผ ๋ชจ๋ ํ์ธํ๊ณ , ๊ฐ์ฒด์ ๋ด์ฉ์ด ์๋ก ๋ค๋ฅธ ๊ฐ์ธ์ง ํ์ธ
props๋ก children์ด ์ ๋ฌ๋์์ ๋
์ด์ ๊ณผ ์ ํํ ๋์ผํ ์์์ ์ฐธ์กฐ๋ฅผ ๋ฐํํ๋ฉด ๋ด์ฉ์ด ๋ฐ๋์ด๋ ์ฃผ์๊ฐ์ด ๊ฐ๊ธฐ ๋๋ฌธ์ props์ ๋ณํ๋ฅผ ์ธ์ํ ์ ์์ต๋๋ค.
useMemo ์ฌ์ฉํ๊ธฐ: ์์กด๋ฐฐ์ด์ ๋ค์ด๊ฐ ๋ณ์๋ค์ด ๋ฐ๋์ง ์์ผ๋ฉด useMemo์๋ฌ ๋ฐํ๋ ์์๋ ๋ฆฌ๋ ๋๋ง ๋์ง ์์
useLayoutEffect: state๊ฐ ์ฌ๋ฌ๋ฒ ๋ณํด๋ ์ต์ข ๊ฐ๋ง ์ ์ฉ์์ผ์ ๋ ๋๋งํจ
React.Component.shouldComponentUpdate(): ์ฝ๋ฐฑํจ์๋ก์จ ๋ฆฌ๋ ๋๋ง ์ฌ๋ถ๋ฅผ ์ปค์คํ ํ๋ ํจ์
React.PureComponent:
Last updated