React.memo ๐Ÿ˜ฎโ“

c_yjยท2022๋…„ 7์›” 18์ผ
0

React

๋ชฉ๋ก ๋ณด๊ธฐ
11/13
post-thumbnail

React.memo๋Š” ๊ณ ์ฐจ ์ปดํฌ๋„ŒํŠธ(Higher Order Component)์ž…๋‹ˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋™์ผํ•œ props๋กœ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ Œ๋”๋งํ•ด๋‚ธ๋‹ค๋ฉด, React.memo๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ์ด์ง•(Memoizing)ํ•˜๋„๋ก ๋ž˜ํ•‘ํ•˜์—ฌ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, React๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ Œ๋”๋ง๋œ ๊ฒฐ๊ณผ๋ฅผ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
React.memo๋Š” props ๋ณ€ํ™”์—๋งŒ ์˜ํ–ฅ์„ ์ค€๋‹ค.

์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด์ž.๐Ÿ–

App.js


App.js์—์„œ Child ์ปดํฌ๋„ŒํŠธ๋กœ props๋ฅผ ์ „๋‹ฌํ•˜์˜€๋‹ค.

Child.js

๋ถ€๋ชจ ๋‚˜์ด ์ฆ๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด Child ์ปดํฌ๋„ŒํŠธ๋„ ๋ฆฌ๋ Œ๋”๋ง์ด ์‹œ์ž‘๋˜๋Š”๋ฐ ์ €๋ ‡๊ฒŒ memo๋ฅผ importํ•ด์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ์‹ธ์ฃผ๋ฉด ๋œ๋‹ค.

React.memo๋Š” ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•œ๋‹ค. React.memo๋Š” ํ•จ์ˆ˜๋ฅผ ์บ์‹œ์— ์ €์žฅํ•œ๋‹ค ๋–„๋ฌธ์— ๋Œ€๋Ÿ‰์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋กœ ์ด์–ด์ง€๊ธฐ์— ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

์ถœ์ฒ˜
https://www.youtube.com/watch?v=oqUgcxwrnSY๐Ÿ‘
https://ko.reactjs.org/docs/react-api.html#reactmemo

profile
FrontEnd Developer

0๊ฐœ์˜ ๋Œ“๊ธ€