ToDoList Web(3)

ํ•œ์ƒํ˜„ยท2021๋…„ 1์›” 26์ผ
0

React

๋ชฉ๋ก ๋ณด๊ธฐ
9/12

๐Ÿ‘ ํ”„๋กœ์ ํŠธ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•
-> ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ปดํฌ๋„ŒํŠธ ๋ฆฌ๋ Œ๋”๋ง ์ตœ์ ํ™”๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฆฌ๋ Œ๋”๋ง๋˜๋Š” ๊ณผ์ •์—์„œ ๋ฒ„ํผ๋ง์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ๋ฆฌ์•กํŠธ์—์„œ๋Š” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง๋˜๋ฉด ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋„ ๋ฆฌ๋ Œ๋”๋ง ๋จ.

  2. ์ž‘์€ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ƒ๊ด€์ด ์—†์œผ๋‚˜, ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ง‰์•„์•ผ ํ•จ.

  3. ์—ฌ๊ธฐ์„œ ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์€ ์‹ค์ œ ์œ ์ €์—์„œ์˜ DOM ๋ Œ๋”๋งX, Virtual DOM์—์„œ์˜ ๋ Œ๋”๋ง์„ ์˜๋ฏธ.

  4. HOW? : shouldComponentUpdate๋กœ ๋ฐฉ์ง€.

๐Ÿงจ ์ตœ์ ํ™” 1 : TodoList

  • TodoList ์ปดํฌ๋„ŒํŠธ๋Š” todos props๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ๋งŒ ๋ฆฌ๋ Œ๋”๋ง ๋˜์–ด์•ผ ํ•จ.
  • todos ๊ฐ’์„ ๋ฐ”๊ฟ€๋–„๋งŒ ์ปดํฌ๋„ŒํŠธ์— ์—…๋ฐ์ดํŠธํ•˜๋„๋ก shouldComponentUpdate ๋ฉ”์„œ๋“œ ๋„ฃ์–ด์คŒ.
TodoList.js
shouldComponentUpdate(nextProps, nextState){
        return this.props.todos !== nextProps.todos;
    }

๐Ÿงจ ์ตœ์ ํ™” 2 : TodoItem

  • todos ๋ฐฐ์—ด์„ ์‹ค์ œ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ TodoList์—์„œ shouldComponentUpdate๊ฐ€ ๋„์›€์ด ๋˜์ง€ ์•Š์Œ.
  • TodoItem์—์„œ ์ตœ์ ํ™”๋ฅผ ์ง„ํ–‰ํ•ด์ค˜์•ผ ํ•จ.
  • TodoItem์ด ๋ฆฌ๋ Œ๋”๋ง๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” done์ด ๋ฐ”๋€” ๋•Œ ๋ฟ.
TodoItem.js
  shouldComponentUpdate(nextProps, nextState){
    return this.props.done!==nextProps.done;
  }

๐Ÿ˜Š ์ •๋ฆฌ

  • ์–ด๋–ค ์ƒํ™ฉ์—์„œ shouldComponentUpdate๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ• ๊นŒ?
  1. ์ปดํฌ๋„ŒํŠธ ๋ฐฐ์—ด์ด ๋ Œ๋”๋ง๋˜๋Š” ๋ฆฌ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ์ผ ๋•Œ.
  2. ๋ฆฌ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์— ์žˆ๋Š” ์•„์ดํ…œ ์ปดํฌ๋„ŒํŠธ์ผ ๋•Œ.
  3. ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฉฐ, ๋ฆฌ๋ Œ๋”๋ง๋˜์ง€ ๋ง์•„์•ผ ํ•  ์ƒํ™ฉ์—์„œ๋„ ๋ฆฌ๋ Œ๋”๋ง์ด ์ง„ํ–‰๋  ๋•Œ.

์ฐธ๊ณ  : <๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ >

profile
์˜ ๊ณต๋ถ€ ๋…ธํŠธ.

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