>  Q&A  >  본문

Vue 관찰자는 data() 변경 시 실행됩니다.

아아아아

조금 미칠 것 같아요. 관찰자는 "driver" 소품만 관찰하면 안 되나요? "standsData"를 편집하면 정렬할 수 없는 방식으로 트리거됩니다. 내가 뭐 놓친 거 없니?

P粉144705065P粉144705065207일 전395

모든 응답(1)나는 대답할 것이다

  • P粉662802882

    P粉6628028822024-03-27 00:58:01

    배열을 어떻게 정렬했는지에 따라 다를 수 있지만 this.standsData = this.drivers ,因此对 this.standsData 的任何变异更改也会变异 this.drivers 아래에 데이터를 할당했기 때문에 동일한 배열을 참조합니다. 드라이버 배열을 복사하여 다음과 같이 구성 요소 상태에 넣을 수 있습니다.

    으아아아

    데이터를 this.standsData 中深度修改其他数据也会出现类似的问题,因为您在观察器上指定 deep: true ;如果您必须这样做,则在将 this.drivers 移动到 this.standsData깊이 복사해야 하는 경우를 기억하세요. 이는 lodash.cloneDeep과 같은 사용자 정의 코드나 도구를 사용하여 수행할 수 있습니다.

    여기서 또 다른 특이한 점은 기본적으로 Vue 관찰자는 구성 요소 초기화 시 실행되지 않는다는 것입니다. 감시자에 추가하려면 drivers 属性在组件初始化期间初始设置时发生变化时触发它,则需要将 immediate: true (문서 여기).

    으아아아

    회신하다
    0
  • 취소회신하다