programing

Vue.js - 컴포넌트 데이터가 갱신되지 않음

goodcopy 2022. 7. 31. 22:14
반응형

Vue.js - 컴포넌트 데이터가 갱신되지 않음

어레이를 기반으로 하는 Vue 목록이 있으며 각 어레이 항목은 어레이 항목 속성을 바인딩하는 구성 요소를 렌더링합니다.

  <div v-for="item in items">
      <item v-bind:item="item"></item>
  </div>

이 구성 요소에는 바인딩된 속성을 기준으로 혼합된 데이터가 있습니다.

Vue.component('item', {
  template: '<p>ID: {{item.id}}, {{component_id}}</p>',
  props: ['item'],
  data: function() {
    return {
      component_id: this.item.id
    }
  }
});

문제는 초기 목록 배열을 변경할 때 컴포넌트의 혼합된 프로포트가 원래 업데이트를 유지하며 원래 바인딩된 데이터가 변경되어도 변경되지 않는다는 것입니다.

http://codepen.io/anything/pen/bgQBwQ

ow 데이터 속성을 갱신하는 컴포넌트를 만들려면 어떻게 해야 하나요?

답변 형식으로 요청하신 대로:

이 경우 계산된 속성이 올바른 접근법이며 다음과 같은 코드가 생성됩니다.

Vue.component('item', {
  template: '<p>Original: {{item.id}}, Mixed: {{component_id}}, Computed: {{computed_id}}</p>',
  props: ['item'],
  computed: {
    computed_id: function() {
      return this.item.id;
    }
  }
});

이쪽에서computed_id매번 재계산됩니다.item변경.

언급URL : https://stackoverflow.com/questions/42160135/vue-js-components-data-do-not-update

반응형