data 변경에 방법에 대해 질문드립니다.

미해결질문
viveloper 프로필

todoItems의 원본 데이터 변경 측면에서 slice가 아닌 splice 사용을 강조하셨는데, 리액트와 비교해서 궁금증이 생겨서 질문드립니다. 리액트에서는 state변경시 이전 state의 불변성을 유지하기 위해 새로운 객체를 생성하여 넣는 방식을 사용하는데 뷰에서는 이와는 반대되는 개념인가요? 저는 this.todoItems = [선택된 아이템이 제거된 새로운 배열] 이렇게 구현할거라 생각했었는데 예상과 달라서 질문드립니다. 두 가지 방법 모두 정상적으로 동작하는 것처럼 보입니다만 후자의 경우 제가 모르는 잠재적 문제가 있는것인가요?

장기효(캡틴판교) 프로필
장기효(캡틴판교) 2달 전

안녕하세요 viveloper님 좋은 질문입니다. 질문 바로 답변드리면 리액트의 핵심 사상은 immutability(불변성)임에 반해 뷰에서는 reactivity(반응성)을 추구합니다. 따라서, 리액트에서 state를 setState()로 변경하시던 습관을 뷰에서 계속 가져가실 필요는 없습니다. 원본 데이터를 편하게 조작하시면 뷰에서는 알아서 화면을 잘 그려줄 거구요. 그리고 reactivity 조작하실 때 주의하셔야 할 점만 알고 계시면 크게 문제 없을 것 같습니다. 주의할 점은 아래 문서를 참고하세요 :)

https://vuejs.org/v2/guide/reactivity.html

viveloper 프로필
viveloper 2달 전

감사합니다~ 알려주신 링크도 많은 도움이 되었네요 ^^

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스