작성
·
233
0
앞선 강의의 Lists.js 파일에서 handleEnd 함수를 만들때,
리액트 불변성을 지켜주기 위해
const newTodoDate = todoData;
라는 코드를 사용해서 todoData를 newTodoData에 담아
준 후 newTodoDate.splice를 사용하는 것으로 이해했는데,
본 강의에서는
const array = [1,2,3,4]
const sameArray = array;
위와 같이 sameArray에 array를 담아 준 후
sameArray.push(5); 코드를 실행하니
array에도 5가 담기면서 불변성이 지켜지지 않은 것으로 보이는데요
둘은 어떤 차이가 있나요?
제가 무엇을 잘못 이해하고 있는지 궁금합니다
답변 1
1
안녕하세요
splice 메소드는 새로 복사를 해주기 때문에 불변성이 지켜지지만 push 메소드는 그렇지 않습니다.
원본 데이터를 변경하지 않는 메소드 => spread operator, map, filter, slice, reduce
원본 데이터를 변경하는 메소드 => splice, push
이렇게 구분해주시면 됩니다.
감사합니다.
splice, push 둘 다 원본 데이터를 변경시키므로 불변성이 보장되는 메소드들이 아닌데, 그 둘 사이에서도 차이가 존재한다는 말씀이시죠? 감사합니다.