在vue中以反应性更改数据值

时间:2018-04-02 20:17:22

标签: vue.js vuejs2

我试图每1秒减少一次数据属性的值,如下所示:

  data() {
    return {
      timer: null
    }
  },

  mounted() {
    this.timer = 50;
    window.setInterval(() => {
      this.$set(this, 'timer', this.timer - 1)
    }, 1000);
  },

https://jsfiddle.net/eywraw8t/8179/

在Vue devTool中,timer不会自动更新。但是,在jsfiddle中,输出正在更新。这是被动的吗?如果没有,我怎么能让它反应?

1 个答案:

答案 0 :(得分:0)

正如评论部分timer中已经提到的@connexo确实是被动的。这就是它在模板中更改其值的原因。

我能想到的唯一原因是您没有在您的环境中的组件模板中包含timer。有一个相关的Github issue描述到目前为止,如果没有DOM元素受数据影响,vue-devtools也不会更新。