>  기사  >  웹 프론트엔드  >  Vue 반응형 데이터 원칙과 Vue.set과 Vue.$set의 차이점

Vue 반응형 데이터 원칙과 Vue.set과 Vue.$set의 차이점

王林
王林원래의
2023-06-09 16:10:061739검색

Vue는 현재 프런트엔드 분야에서 널리 사용되는 개발 프레임워크입니다. 데이터 수정을 통해 뷰 업데이트를 실행할 수 있는 핵심 메커니즘 중 하나는 반응형 데이터입니다. 이 기사에서는 Vue의 반응형 데이터 원리를 살펴보고 Vue.set과 Vue.$set의 차이점을 살펴보겠습니다.

1. Vue 반응형 데이터 원칙

Vue는 먼저 데이터 소스를 하이재킹합니다. 데이터 소스를 정의하려면 다음 세 가지 조건만 충족하면 됩니다. 개체가 비어 있지 않거나 개체가 고정되거나 봉인된 개체가 아닙니다. 객체는 Vue 인스턴스 자체가 아닙니다. 필요한 객체가 조건을 충족하면 Vue는 객체에 Observe 인스턴스를 추가합니다. Observe 인스턴스는 객체의 각 속성에 Dep 인스턴스를 추가합니다. 속성 값이 객체이면 해당 속성의 Dep 인스턴스가 됩니다. Dep 인스턴스. 각 값에 대해 Dep 인스턴스를 추가합니다. 이를 통해 속성 바인딩이 가능해집니다.

Vue 인스턴스에서 데이터를 수정할 때 Vue는 getter 및 setter를 통해 데이터의 읽기 및 쓰기 작업을 가로채서 속성 값 업데이트를 트리거합니다. setter 작업은 속성이 속한 Dep 인스턴스에 알립니다. 알림 업데이트를 수행하여 보기 업데이트를 트리거합니다. 이것이 Vue가 반응형 데이터를 구현하는 방법입니다.

2. Vue.set과 Vue.$set의 차이점

Vue에서는 종종 데이터의 데이터를 수정하고 이를 v-model을 통해 뷰에 바인딩하므로 데이터 수정 시 Vue가 자동으로 뷰를 업데이트할 수 있습니다. . 그러나 객체 데이터를 수정할 때 반응형 데이터 업데이트를 위해서는 Vue에서 제공하는 Vue.set 또는 Vue.$set 메서드를 사용해야 합니다.

Vue.set과 Vue.$set의 사용법은 일관됩니다. Vue.set(target, key, value)의 target은 수정하려는 객체이고, key는 속성 이름인 객체, value는 속성 값입니다. Vue.set을 사용할 때 Vue는 객체에 이름이 key이고 값이 value인 새 속성을 추가합니다.

Vue.$set(target, key, value)는 객체의 속성 값을 수정하는 데에도 사용되지만 Vue.$set와 Vue.set의 차이점은 Vue.$set가 객체의 반응 여부를 결정한다는 것입니다. . 반응하지 않는 경우 Vue.$set는 객체를 반응형 객체로 변환합니다. 이렇게 하면 객체가 뷰 업데이트를 정상적으로 트리거할 수 있습니다.

객체 데이터를 수정할 때 obj.property = value를 직접 사용하여 수정하면 Vue는 이 데이터의 변경 사항을 감지하지 못하고 뷰 업데이트를 트리거하지 않는다는 점에 유의해야 합니다. 따라서 객체 유형의 데이터를 수정할 때는 반드시 Vue.set 또는 Vue.$set 메소드를 사용해야 합니다.

위 내용은 Vue 반응형 데이터 원칙과 Vue.set과 Vue.$set의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.