在Vue.js中,如何禁用计算属性的缓存?

时间:2015-08-19 21:47:04

标签: javascript vue.js

  

在0.12.8之前,计算属性的行为与getter类似 - 每次访问它时,都会重新评估getter函数。在0.12.8中,这已得到改进 - 计算属性被缓存并且仅在必要时才进行懒惰重新评估。

对于我当前的项目,我实际上需要在每次访问时重新评估一些属性。当前懒惰评估不起作用的原因是因为在我的一些属性中还有其他“动态变量”不在Vue.js的监视下。

2 个答案:

答案 0 :(得分:2)

According to the official docs,尽管@Xethron和@ИльяЗеленько的早期答案在Vue 1.x之前都是正确的,但从那时起就不赞成使用基于方法的方法。

因此上述示例将与此不同:

computed: {
  example: {
    cache: false,
    get () {
      return Date.now() + this.msg
    }
  }
}

...对此:

methods: {
  getExample () {
    return Date.now() + this.msg
  }
}

注意,我们现在将通过调用函数来访问模板中的值,因此:

<p>message: {{ example }}</p>

...需要这样:

<p>message: {{ getExample() }}</p>

答案 1 :(得分:0)

您可以使用@Xethron中的方式,但可以使用函数的简短语法:

computed: {
  example: {
    cache: false,
    get () {
      return Date.now() + this.msg
    }
  }
}