vue中watch和computed的区别

2020-12-11  本文已影响0人  3e2235c61b99

两者都可以观察页面数据的变化

1.在数据变化,会自动调用watch而不调用computed,只有在使用computed的值时才会调用conputed
2.多次使用computed时,如果computed所依赖的属性值没有变化,只有第一次使用会进行计算,之后的每次使用不会重新进行计算,而是会读取缓存
3.连续多次改变属性的值,watch只会执行最后一次
下面的代码只会输出一次旧值: 消息消息消息, 新值: 第三次改变

watch: {
    msg(val, oldVal){
        console.log("旧值: %s, 新值: %s", oldVal, val)
    }
},

methods: {
    init() {
        this.msg = "第一次改变"
        this.msg = "第二次改变"
        this.msg = "第三次改变"
    }
}
以下是个人理解,仅供参考

当数据变化频率不高,但是需要经过复杂计算时,使用computed
当数据变化后,需要进行一些操作,使用watch

上一篇下一篇

猜你喜欢

热点阅读