javascript - Vue.js 奇怪的数据更新

标签 javascript vue.js vuejs2

我是 Vue.js 初学者,我注意到数据更新中的奇怪行为。

如果我执行这段代码,它会正常工作。数据每秒呈现一次:

var timerVue = new Vue({
    el: "#timer",
    data: {
        object: new Date(0),
        integer: 0 
    },
});

var hours = 0;
setInterval( function(){
    timerVue.object.setHours( hours++ );
    timerVue.integer++;
}, 1000 );
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.min.js"></script>
<div id="timer">
  <div>{{ object }}</div>
  <div>{{ integer }}</div>
</div>

但如果我删除对象,数据不会更新

var timerVue = new Vue({
    el: "#timer",
    data: {
        object: new Date(0),
    },
});

var hours = 0;
setInterval( function(){
    timerVue.object.setHours( hours++ );
}, 1000 );
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.min.js"></script>
<div id="timer">
  <div>{{ object }}</div>
</div>

数据需要这样设置吗?: variable = "value" 触发观察者?

谢谢

最佳答案

一种可能性是使用 computed 属性:vue 跟踪依赖项更改并相应地使用react:

<script>
    var timerVue = new Vue({
        el: '#timer',
        data: {
            object: new Date(0),
            hours: 0
        },
        computed: {
            plain_date: function () {
                this.hours;  // just for creating a dependency
                return this.object;
            }
        }
    })


    setInterval(function () {
        timerVue.object.setHours(timerVue.hours++);
    }, 1000);

</script>

html:

<div id="timer">
  <div>{{ plain_date }}</div>
</div>

关于javascript - Vue.js 奇怪的数据更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48913251/

相关文章:

javascript - Firebug:Angular 堆栈跟踪不显示错误源(行号、文件)

javascript - 我怎样才能让我的幻灯片指示器改变我当前代码的样式?

json - Vue 使用 v-model 更改 key 本身

javascript - VueJS update() 生命周期钩子(Hook)导致无限循环

javascript - Vue router 路由的安全性

html - 如何让 Vue b-table 滚动带有固定标题的正文

javascript - AOL 样式问题 - 两个固定的侧边栏,一个流畅的内容布局

javascript - 经纬度和坐标格式的区别

javascript - 在vuejs中使用jquery函数

vuejs2 - Materialize:无法在 Dropdown._makeDropdownFocusable 处设置 null 属性 'tabIndex'