参考:computed和watch的区别
1、watch: 一个数据影响多个数据
2、computed:一个数据受多个数据影响
3、watch computed methods区别
(1)watch computed以Vue的依赖追踪机制为基础,只要依赖数据发生变化,所有依赖这个数据的“相关”数据会“自动”发生变化,即自动调用相关函数去实现数据的变动
(2)methods里定义的函数需要手动调用才能执行
4、举例说明
new Vue({
el: '#app',
// 设置两个button,点击分别调用getMethodsDate,getComputedDate方法
template:
'<div id="app">
<button @click="getMethodsDate">methods</button>
<button @click="getComputedDate">computed</button>
</div>',
methods: {
getMethodsDate: function () {
alert(new Date())
},
// 返回computed选项中设置的计算属性——computedDate
getComputedDate: function () {
alert(this.computedDate)
}
},
computed: {
computedDate: function () {
return new Date()
}
}
- 两次点击methods返回的时间是不同的
- 注意两次点击computed返回的时间是相同的,因为此时computed提供的是缓存的值,而没有重新计算
computed进行重新计算的条件:
- 存在依赖型数据(放在data等对象下的实例数据)
- 依赖数据发生改变