Today, What I learned?
์ฌ์ค์ ๋ผ๋์ค๋ผ๋ ์ฝ์์ ๋ผ๋์ค๋ฒํผ์ ํด๋นํ๋ ๊ฒฝ๋ ฅ ๋ถ๋ถ ์ปดํฌ๋ํธ์ ๋ค์ด๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ ,
์ ์ฒด์ ์ผ๋ก ๋ ๋๋ง์ด ๋๋ ๊ฒ์ ์ ์ ์์๋ค.
๋ถ๋ชจ์ปดํฌ๋ํธ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์!...
์ด๋ฐ ์ธ๋ฐ์๋ ๋ ๋๋ง ํ์๋ฅผ ์ค์ด๊ณ ์, React.memo๋ฅผ ์ ์ฉํ๊ธฐ๋ก ํ๋ค.
UserTopInfo -> ์ฒดํฌ ์์ญ์ ๊ฐ์ธ๋ ์ปดํฌ๋ํธ -> ์ฒดํฌ๋ฐ์ค/๋ผ๋์ค ๋ฒํผ ์ปดํฌ๋ํธ ํํ๋ก ๊ตฌ์ฑ์ด ๋์ด์์ด์,
ํด๋ฆญ์ ์ฃผ์ฒด๊ฐ ๋๋ ๊ฐ์ฅ ๋ด๋ถ ์ปดํฌ๋ํธ์ธ ์ฒดํฌ๋ฐ์ค์ ๋ผ๋์ค ๋ฒํผ ์ปดํฌ๋ํธ์ memo๋ฅผ ์ ์ฉํ๋ค.
๋ ๋ค userTopInfo์์ ์ ์ญ ์ํ์ธ userInfo๋ผ๋ props๋ฅผ ๊ณตํต์ ์ผ๋ก ๋ฐ๊ณ ์๋ค. (์ ์ ๊ฐ ์์ ํ ์ ๋ณด์ ๋ํ ๋ถ๋ถ!)
profiler
์ ๋ณด ์์ ๊ณผ ๊ด๋ จ๋ UserInfoTop ์ปดํฌ๋ํธ๊ฐ ๊ณ์ ์ ๋ฐ์ดํธ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ผ๋์ค ๋ฒํผ๊ณผ ์ฒดํฌ๋ฐ์ค์ memo๋ฅผ ์ ์ฉํ ํ ๋ ๋๋ง ์๋๊ฐ 4.3ms์์ 3.5ms๋ก ๊ฐ์ํ ๊ฒ์ ๋ณผ ์ ์๋ค.
((ํ๋กํ์ผ๋ฌ๋ฅผ ์ด๋ ๊ฒ ๋ณด๋ ๊ฒ์ด ๋ง๋?))
React.memo๋ฅผ ์ธ ํ์ด๋ฐ?
์ด ๋ ์์ ์ธ ํ์ด๋ฐ์ด ๋๋์ฒด ์ธ์ ์ธ๊ฐ.. ์ ๋ฆฌ๋ ํด๋ณด๊ณ ํ์ง๋ง ์ ๊ฐ์ด ์ ์์ ์ ํ๋ธ ์ฌํ์ ๋ค๋ ์๋ค.
React.memo๋ ์ฃผ๋ก ์์ ์ปดํฌ๋ํธ์ ์ ์ฉํ๋๋ฐ, props๋ฅผ ์ฒดํฌํ๊ณ ๋ณํ๊ฐ ์์ ๋ ๋ฆฌ๋ ๋๋ง์ ํ๋ค.
props์ ๋ณํ์๋ง ์์กดํ๋ค๋ ์ !.. ๊ฑฐ๊ธฐ๋ค ๋จ์ฉํ๋ค๊ฐ ์บ์์ฉ๋์ด ๋ง์์ง๊ธฐ ๋๋ฌธ์ ํ์ํ ๋๋ง ์ฐ๋ ๊ฒ์ด ์ข๋ค. ๐
๊ฐ์ props๋ก ์์ฃผ ๋ ๋๋ง์ด ๋๊ฑฐ๋ (์ง๊ธ ๊ฐ์ ๊ฒฝ์ฐ)
์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง๋ค ๋ณต์กํ ๋ก์ง์ด ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ ์ฐฐ๋ก๊ฐ์ด ์ธ ์ ์๋ค.
๋ ๋๋ง ์ต์ ํ.. ๊ฐ ๊ธธ์ด ๋ฉ๋ค!
'๐ Studying > ๐ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] Input ํ๊ทธ clear ๋ฒํผ ์ฌ๋์ ์ ํ๋ ๋ฒ๊ทธ (0) | 2023.03.06 |
---|---|
[React] React-query์ staleTime, cacheTime, invalidateQueries (0) | 2023.03.03 |
[React] ์ด๋ฏธ์ง ํ๊ทธ ๋์ ๊ฒฝ๋ก ์ถ๊ฐ src require (0) | 2023.02.28 |
[React] ํ์ด์ด๋ฒ ์ด์ค ํ๋กํ ์ด๋ฏธ์ง ์ฉ๋ ์ต์ ํ (0) | 2023.02.27 |
[React] React.memo, useMemo, useCallback (0) | 2023.02.24 |
Comment