面试题系列---【watch、methods 和 computed 的区别】
1.定义
computed**: 是计算属性,依赖其它属性值,并且 computed 的值有缓存,只有它依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算 computed 的值;
watch:一个对象,键是须要观察的表达式(data中的数据),值是对应的回调函数,用来监听某些特定的数据变化,从而进行某些特定的业务逻辑操做。
methods:表示一系列具体的操做,适合书写大量的业务逻辑
2.区别
1..三者的加载顺序
- computed 是在 HTML DOM 加载后马上执行的,如赋值;(属性将被混入到 Vue 实例)
- methods 则必须要有一定的触发条件才能执行,如点击事件
- watch它用于观察 Vue 实例上的数据变动,当数据改变时,函数才会执行。
2.默认加载的时候 先 computed 再 watch,不执行 methods;
3.触发某一事件后 先 computed 再 methods 再到 watch computed 属性 vs method 方法 computed 计算属性是基于它们的依赖进行缓存的。
4.computed数据发生改变时-beforeupdate钩子函数中;watch是在数据加载完成后才能监听---mounted钩子函数中;methods将data中属性和methods身上的方法添加到vue的实例身上---created钩子函数中
5.watch和methods在data里边定义了才能够使用;而computed里面定义了就不能够在data里面定义
6.computed必定要有return值;watch没有return值