happyso
study with happyso
happyso
전체 방문자
오늘
어제
  • 분류 전체보기 (302)
    • GIT (3)
    • 컴퓨터 기본 개념 (29)
    • 알고리즘 (125)
      • 알고리즘 문제 (115)
      • 알고리즘 개념 (10)
    • Go (2)
    • 클라우드 (54)
      • DevOps (4)
      • Kubernetes(쿠버네티스) (33)
      • AWS (6)
      • CKA (8)
    • 리눅스(Linux) (18)
      • 컨테이너(Container) (8)
    • Front (22)
      • JavaScript (2)
      • React (20)
    • Python (21)
      • Python 웹 크롤링 (11)
      • Django (7)
      • MachineLearning (3)
    • 데이터베이스 (6)
      • MariaDB (2)
      • MongoDB (4)
    • C언어 (5)
    • Trouble Shooting (2)
    • 네트워크 (8)
      • CCNA (5)
    • 보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • kubernetes
  • 18
  • edit
  • replace
  • 15
  • Patch
  • apply

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
happyso

study with happyso

[React] memo의 효과_컴포넌트를 어떻게 분리하는게 리렌더링이 효율적으로 될까?
Front/React

[React] memo의 효과_컴포넌트를 어떻게 분리하는게 리렌더링이 효율적으로 될까?

2021. 5. 15. 01:36

[의문 : 왜 컴포넌트를 하나가 아닌 두개로 분리하였을까?]

[결과물 화면]

const TagList = React.memo(({ tags }) => (
  <TagListBlock>
    {tags.map((tag) => (
      <Tag>#{tag}</Tag>
    ))}
  </TagListBlock>
));

이와 같이 한번에 해결할 수 있는데 왜 나눴을까 의심이 들었다. 어차피 tag값이 바뀌면 둘다 렌더링 되는건 똑같지 않나? 라고 생각했지만 다르다.

// React.memo를 사용하여 tag 값이 바뀔 때만 리렌더링되도록 처리
const TagItem = React.memo(({ tag }) => <Tag>#{tag}</Tag>);

// React.memo를 사용하여 tags 값이 바뀔 때만 리렌더링되도록 처리
const TagList = React.memo(({ tags }) => (
  <TagListBlock>
    {tags.map((tag) => (
      <TagItem key={tag} tag={tag} />
    ))}
  </TagListBlock>
));

이처럼 컴포넌트를 따로 분리하여 memo를 사용했을 경우 TagList는 tags의 값이 바뀌었을 때만 렌더링 되고

TagItem의 경우 tag 값이 바뀌었을 때만 렌더링된다.

 

즉, TagItem의 경우 tag가 새로 추가되거나 삭제되었을 경우에만 태그값 하나에 대해서만 리렌더링을 하게된다.

 

'Front > React' 카테고리의 다른 글

[React] VSCode React Debugging  (0) 2024.02.08
[React] Form Validation (Formik VS React Hook Form)  (0) 2021.11.06
[React] hooks에서 최적화  (0) 2021.05.07
[React] JWT를 통한 회원 인증 시스템 구현  (0) 2021.02.01
[React] mongoose를 이용한 MongoDB 연동 실습2  (0) 2021.01.29
    'Front/React' 카테고리의 다른 글
    • [React] VSCode React Debugging
    • [React] Form Validation (Formik VS React Hook Form)
    • [React] hooks에서 최적화
    • [React] JWT를 통한 회원 인증 시스템 구현
    happyso
    happyso

    티스토리툴바