출처: ChatGPT
React에서 불변성을 지킨다는 것은 상태(State) 및 속성(Props)을 변경할 때, 기존의 데이터를 직접 수정하지 않고 새로운 데이터를 생성하는 것을 의미합니다.
불변성을 지키는 방법은 다음과 같습니다:
// Bad
this.state.todos.push(newTodo);
// Good
this.setState((prevState) => ({
todos: prevState.todos.concat(newTodo),
}));
// Bad
this.state.user.name = 'John';
// Good
this.setState((prevState) => ({
user: {
...prevState.user,
name: 'John',
},
}));
React는 불변성을 유지하는 상태 업데이트를 감지하여 가상 DOM을 효율적으로 업데이트합니다. 변경된 부분만 감지하고 업데이트하므로 성능이 향상되고, 예측 가능한 동작을 제공할 수 있습니다.