RealMenRoad
리액트에서 state의 불변성을 유지해야하는 이유 본문
리액트에서 state의 불변성을 유지해야 하는 이유는 다음과 같습니다.
불변성을 유지하면 성능이 향상됩니다.
state를 업데이트할 때마다 새로운 객체를 생성하면 리액트는 이전 상태와 새로운 상태를 비교하여 변경된 부분을 찾아내야 합니다. 이 과정에서 객체가 변경되면 더 많은 연산이 필요하며, 이는 애플리케이션의 성능을 저하시킬 수 있습니다. 불변성을 유지하면 변경된 객체만 찾아내고, 나머지 부분은 이전 상태와 동일한 객체로 처리할 수 있으므로 성능이 향상됩니다.
불변성을 유지하면 디버깅이 용이합니다.
불변성을 유지하면 상태 변경을 추적하기 쉽습니다. 예를 들어, 객체를 직접 수정하는 경우 언제, 어떤 값이 변경되었는지 추적하기 어렵습니다. 하지만 불변성을 유지하면 변경된 값을 추적하기 쉬우므로 디버깅이 용이합니다.
불변성을 유지하면 예상치 못한 동작을 방지할 수 있습니다.
리액트 컴포넌트는 상태가 변경되면 다시 렌더링됩니다. 상태가 변경되었음을 알리기 위해서는 상태 객체의 참조가 변경되어야 합니다. 그러나 객체를 직접 수정하면 상태 객체의 참조가 변경되지 않을 수 있습니다. 이 경우, 리액트는 상태가 변경되지 않았다고 판단하여 컴포넌트를 다시 렌더링하지 않을 수 있습니다. 이는 예상치 못한 동작을 유발할 수 있으므로 불변성을 유지하는 것이 좋습니다.
따라서, 리액트에서 state의 불변성을 유지하면 성능이 향상되고, 디버깅이 용이하며, 예상치 못한 동작을 방지할 수 있습니다.
'FrontEnd > React.js' 카테고리의 다른 글
리액트 가상돔과 실제 dom에 업데이트되는 과정 (0) | 2023.03.12 |
---|---|
리액트에서 useState가 비동기적으로 동작하는 이유 (0) | 2023.03.05 |
리액트 초기 렌더링 (0) | 2023.02.07 |
useState에 대한 고찰 (0) | 2022.08.16 |
Comments