Input + Output = True
์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ๋ณธ๋ฌธ
๐ ์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ด๋?
์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฆฌ๋ ๋๋ง์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง ์ง ๊ทธ๋ ค๋ณด์ธ์.
(๋ถ๋ชจ ์ปดํฌ๋ํธ A์ ์์ ์ปดํฌ๋ํธ B๊ฐ ์์์ ๊ฐ์ ํ๊ณ ๊ทธ๋ ค๋ด ์๋ค.)
๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
ํ๋ฉด์ ๋ณด์ด๋ ๋ฐ์ดํฐ์ ๋ธ๋ผ์ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์น์ํค๋ ๊ฒ
ex) js ๋ฐ์ดํฐ ๊ฐ ๋ณ๊ฒฝ → HTML์ ๋ณ๊ฒฝ๋ ๊ฐ ์ถ๋ ฅ
๋จ๋ฐฉํฅ: ๋ชจ๋ธ์ด ๊ฐ์ง ๊ฐ์ ๋ทฐ์ ๋ณด์ฌ์ฃผ๊ณ , ๋ทฐ์์ ๋ชจ๋ธ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์
์๋ฐฉํฅ: ๋ชจ๋ธ์ด ๊ฐ์ง ๊ฐ์ ๋ทฐ์ ๋ฐ์ธ๋ฉ ํด์ฃผ๊ณ , ๋ทฐ์์ ๋ชจ๋ธ์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์
๋ฆฌ์กํธ๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ํ๋ฏ๋ก, ์ด๋ฒคํธ๋ฅผ ํตํด ๋ค์ ํ๋ฉด์ ๋ฟ๋ ค์ฃผ๋ ๊ณผ์ ์ด ํ์ํจ
์์ ์ปดํฌ๋ํธ B์์ ์ด๋ฒคํธ๋ฅผ ํตํด ๋ถ๋ชจ ์ปดํฌ๋ํธ A์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ
๋ฆฌ์กํธ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์ ๋ฐ์ดํธ ๋๋ฉด ์์ ์ปดํฌ๋ํธ๊น์ง ํจ๊ป ๋ฆฌ๋ ๋๋ง์ ํ๋ฏ๋ก
A, B ์ปดํฌ๋ํธ๊ฐ ํจ๊ป ๋ฆฌ๋ ๋๋ง ๋จ
โ ๋ฆฌ์กํธ ๋ฆฌ๋ ๋๋ง ์กฐ๊ฑด
state์ ๋ณ๊ฒฝ
setState ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋ฆฌ์กํธ๋ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ ๋ฆฌ๋ ๋๋ง์ ํจ
์๋ก์ด props์ ์ ๋ฌ
์ ๋ฌ๋ฐ์ props ๊ฐ์ด ์ ๋ฐ์ดํธ ๋๋ฉด ๋ฆฌ๋ ๋๋ง์ ํจ
๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ ๋๋ง
๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง ๋๋ฉด ์์ ์ปดํฌ๋ํธ๋ ํจ๊ป ๋ฆฌ๋ ๋๋ง ๋จ
forceUpdate์ ์คํ
๋ฆฌ๋ ๋๋ง์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋ (๊ฐ์ ๋ฆฌ๋ ๋๋ง)
shouldComponentUpdate์์ true๊ฐ ๋ฐํ๋ ๋
๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ shouldComponentUpdate ๋ผ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๊ณ
state์ ๋ณ๊ฒฝ ๋๋ ์๋ก์ด props๋ฅผ ์ ๋ฌ ๋ฐ๋ ๊ฒฝ์ฐ ์คํ๋๋ค.
์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก return ๊ฐ์ true ๊ฐ ๋์ด ๋ ๋๋ง์ด ์์๋๊ณ ,
๋ฆฌ๋ ๋๋ง์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ return value = false๋ก ์ง์ ํด์ ๋ฆฌ๋ ๋๋ง์ ๋ง์ ์ ์๋ค
๐ก ์ค๋์ ๊ฒฐ๋ก
๋ฆฌ์กํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ํ๊ณ ,
์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ ํ๊ธฐ ์ํด์ ์ด๋ฒคํธ ๋ฑ์ ์ฌ์ฉํ๊ณ ,
๊ทธ ๊ณผ์ ์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์ ๋ฐ์ดํธ๋ก ์ธํด ๋ฆฌ๋ ๋๋ง ๋๋ฉด
์์ ์ปดํฌ๋ํธ๋ ํจ๊ป ๋ฆฌ๋ ๋๋ง ๋๋ค.
์ฐธ๊ณ
https://felixgerschau.com/react-rerender-components/
https://pt.slideshare.net/miladiir/angular-js-42828566/7?smtNoRedir=1
'๐จFrontEnd > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
redux persist ์ฌ์ฉ๋ฒ (๋ฆฌ๋์ค ์๋ก๊ณ ์นจ ๋ฐ์ดํฐ ์ ์ง) (0) | 2023.01.05 |
---|---|
React - redux ์ดํดํ๊ธฐ (๋ฆฌ๋์ค ๊ฐ๋ ์ ๋ฆฌ) (1) | 2023.01.04 |
React - State, Props, ๋ฆฌ๋ ๋๋ง ๋ฐ์ ์กฐ๊ฑด (0) | 2023.01.02 |
๋ฆฌ์กํธ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ํด์ (feat. useEffect) (0) | 2022.12.28 |
๋ฆฌ์กํธ useRef ๋ (0) | 2022.12.28 |