>  기사  >  웹 프론트엔드  >  vue.js_vue.js의 $set 및 배열 업데이트 메소드

vue.js_vue.js의 $set 및 배열 업데이트 메소드

亚连
亚连원래의
2018-05-31 17:02:472954검색

이제 vue.js의 $set 및 배열 업데이트 방법에 대한 기사를 공유하겠습니다. 이는 좋은 참고 가치가 있으며 모든 사람에게 도움이 되기를 바랍니다.

JavaScript 제한으로 인해 Vue는 다음과 같은 변경된 배열을 감지할 수 없습니다.

색인을 사용하여 배열 항목을 직접 설정하는 경우(예: vm.items[indexOfItem] = newValue

수정하는 경우) 배열 길이(예: vm.items.length = newLength), 배열은 업데이트되지 않습니다.

물론 vue에는 Vue.set, vm.$set(Vue.set의 변형) 또는 splice, caoncat 등을 사용하여 배열을 수정하는 솔루션이 있습니다. 그러면 상태도 트리거됩니다. 업데이트:

ex:

따라서 인스턴스가 생성된 후 인스턴스에 새 속성을 추가하면 업데이트가 트리거되지 않습니다.

ps: 이제 arr1과 arr2라는 두 개의 배열이 있습니다. arr1이 첨자 할당으로 배열을 변경하고 arr2가 $set으로 배열을 변경하면 결과는 어떻게 될까요?

data:{
 arr1 = ['a','b','c'];
 arr2 = [‘foo','bar','baz'];  
}

vm.arr1[1] = 'alpha';
vm.$set(vm.arr2, 1, 'alpha');

아래 첨자 인덱스를 기반으로 배열을 변경하면 상태 업데이트가 트리거될 수 없다는 처음에 말한 내용을 바탕으로 우리는 다음을 알 수 있습니다. 첫 번째 배열의 두 번째 변경 사항은 페이지에서 업데이트되지 않고 두 번째 배열은 페이지에서 업데이트됩니다. 그러나 결과는 다음과 같습니다.

arr1 = ['a', 'alpha', 'b', 'c'];
arr2 = [‘foo', 'alpha', 'bar','baz'];

두 배열의 값이 모두 업데이트됩니다. 즉, $set() 메서드를 사용하여 arr2가 업데이트되면 페이지가 완전히 업데이트됩니다.

위 내용은 제가 여러분을 위해 정리한 내용입니다. 앞으로 도움이 되길 바랍니다.

관련 글:

select 컴포넌트의 JQuery 선택 값 방식

react-router4의 코드 분할 방식(webpack 기반)

vue.js 배열 위치 이동과 동시에 뷰 업데이트 방법

위 내용은 vue.js_vue.js의 $set 및 배열 업데이트 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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