methods/computed/watch
方法调用
methods(方法属性),没有缓存机制,当数据发生变化,重新渲染页面时,会重新执行页面调用的方法。
计算属性
会依赖于他使用的data中的属性,只要是依赖的属性值有改变,则自动重新调用一下计算属性;
侦听属性
watch(监听属性),一个对象,键是需要观察的表达式,值是对应回调函数,跟computed 类似,有缓存机制,但代码冗余。.是侦听的值改变会重新执行函数 . .
计算属性和监听 区别
watch和computed均可以监控程序员想要监控的对象,当这些对象发生改变之后,可以触发回调函数做一些逻辑处理
性能
如果他所依赖的这些属性值没有发生改变,那么计算属性的值是从缓存中来的,而不是重新编译,那么性能要高一些,除非依赖的响应式属性变化才会重新计算。所以vue中尽可能使用computed替代watch。
异步
计算属性是依赖的值改变会重新执行函数,计算属性是取返回值作为最新结果,所以里面不能异步的返回结果。不能写异步逻辑。侦听属性是侦听的值改变会重新执行函数,将一个值重新赋值作为最新结果,所以赋值的时候可以进行一些异步操作