HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🙂
달리팀 노션
/
👨🏻‍💻
달리 2팀 (deprecated 문제 없으면 삭제 예정)
/
Today We Learned
Today We Learned
/
React에서 리렌더링을 하는 조건
React에서 리렌더링을 하는 조건
React에서 리렌더링을 하는 조건

React에서 리렌더링을 하는 조건

생성일
Oct 29, 2021 05:55 AM
기록자
해결 여부
해결 여부
속성
React
카테고리

🔍 배경 및 궁금증

오늘 나온 이슈에 대해서 좀 더 검토해보고자 이 글을 쓰게 됐다,
오늘의 이슈는 무엇이었냐면, Like를 할 때, 낙관적 업데이트를 했음에도 불구하고 제대로 Like API가 상위 컴포넌트에서 호출되지 않아서 문제가 발생한 것이었다.
따라서 가장 큰 원인은 부모 컴포넌트의 리렌더링이 되지 않았던 현상이다.
이를 밑에서 setPost(LikeAPI)를 통해 해결했지만, 결국 리렌더링 문제에 대해서 다시 살펴 보아야 할 필요성이 있어 찾게 되었다.

📢 리렌더링의 조건

state 변경이 있을 때

  • react 에서 유동적인 데이터를 저장하기 위해서 state 라는 것을 이용한다. 이때 state 값을 바꿔주기 위해서는 state 를 직접 조작해서는 안되고 setState() 메서드를 이용해 주어야한다. 왜냐하면 리액트는 state 의 변경이 감지되면 리렌더링을 해주는 데 메서드를 사용하지 않고 직접 바꿔주게 되면 리액트가 state 의 변경을 감지하지 못하게 된다.

새로운 props이 들어올 때

  • 전달받은 props 값이 업데이트 됬다면 리 렌더링 된다.

부모 컴포넌트가 렌더링 될 때

  • 새로운 prop 이 들어오지 않더라고 부모컴포넌트가 리렌더링 된다면 자식컴포넌트 역시 리렌더링이 된다.

shouldComponentUpdate에서 true가 반환될 때

  • 각각의 컴포넌트는 shouldComponentUpdate 라는 메소드를 가지고 있는데 이는 state가 병경되거나 새로운 props를 전달받는경우 실행이 된다 이때 기본적으로 return 값은 true 가 되어 rendering 이 시작되지만 rerendering 이 필요하지 않은 부분이라면 개발자가 return value 를 false 값으로 지정함으로써 리렌더링 되는 상황을 막아줄수 있게된다.

forceUpdate가 실행될 때

  • props 나 state 가 아닌 다른 값이 변경되었을 때 리렌더링을 하고 싶다면 그때 사용할수 있는 메서드 이다.