vue 구성 요소 전달 객체에서 단방향 바인딩을 구현하는 방법은 무엇입니까?

亚连
풀어 주다: 2018-06-02 17:12:21
원래의
1784명이 탐색했습니다.

이제 Vue 컴포넌트가 전달한 객체에 단방향 바인딩을 구현하는 예를 공유하겠습니다. 이는 좋은 참조 값을 가지고 있으며 모든 사람에게 도움이 되기를 바랍니다.

vue 컴포넌트를 사용할 때 컴포넌트 간에 데이터를 전달해야 하는 경우가 많습니다. 여기서는 문자열 변수나 숫자 변수를 전달하는 상황에 대해 논의하지 않습니다. 여기서는 객체를 전달할 때 발생하는 문제에 대해 설명합니다. 구성 요소 사이의 함정.

구성 요소 간에 객체가 전달될 때 이 객체의 참조 유형은 주소를 가리키므로 객체의 특정 속성 값이 하위 구성 요소에서 수정되면 상위 구성 요소에 있는 객체의 해당 속성도 변경됩니다. 따라서 이러한 종류의 양방향 바인딩이 필요하다면 이 방법도 좋은 방법이지만 이러한 종류의 양방향 바인딩이 필요하지 않은 경우에는 속성을 복사하기 위해 새 객체를 정의해야 합니다. 함정은 여기에 있습니다. 일반적인 var 또는 let 객체를 사용하는 경우(예:

computed: { 
  data: function () { 
   let obj={}; 
   obj=this.message//this.message是父组件传递的对象 
   return obj 
 } 
 },
로그인 후 복사

데이터의 각 속성을 입력 상자에 각각 바인딩하고 수정하려고 하면) 단방향 바인딩 효과를 얻으려면 메서드를 추가해야 합니다

computed: { 
 data: function () { 
  let obj=Object.assign({}, this.message); 
  return obj 
 } 
 },
로그인 후 복사

이런 방식으로 반환된 데이터는 새 개체이며 해당 개체를 가리키지 않습니다. 원본 개체의 주소이므로 이를 수정해도 상위 구성 요소는 영향을 받지 않습니다.

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

관련 기사:

JS 익명 함수 및 익명 자체 실행 함수의 개념과 사용법 분석

npm 관리자로 설치 시 권한 문제 해결

vue-router 관련 기본 지식 및 작동 원리

위 내용은 vue 구성 요소 전달 객체에서 단방향 바인딩을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿