强制更新vuejs

时间:2017-07-26 09:42:17

标签: vue.js computed-properties

我的Vuejs组件采用了" datasetId"作为道具。 我希望在我的情况下使用双向绑定,因此我使用.sync修饰符

<mycomponent :datasetid.sync=1 />

在这个组件中,我有一个select组件,我希望它能显示出好的数据集,所以我将它绑定到我的道具上。

<select-component v-model="datasetid" />

由于我们不能改变prop(数据提取是一个道具并将其绑定到v模型可能会改变数据提取)。我决定将此值包装在计算属性上。

<select-component v-model="computedDatasetid">


computed: {
  computedDatasetid: {
    get() {
      return this.datasetid; // return the prop
    },
    set(v) {
      // don't mutate the prop directly but update the parent component.
      this.$emit('update:datasetid', v);
    }
  }
}

使用此代码,&#34; getter&#34;仅被称为1次(当组件第一次创建时)。这是合乎逻辑的,因为文档说明在更新内部数据时会更新计算属性。我不会在&#34; setter&#34;中更新任何内容。

如何在调用setter时强制模型更改? (例如:this.computedDadasetid = 5

计算属性是做我想要的好方法吗? 最好使用原始数据&#39;或观察者或其他什么?

谢谢

0 个答案:

没有答案