watch、methods和computed的区别

122 阅读1分钟

watch、methods和computed都是以函数为基础的,但各自却都不同

一、三者之间的说明以及区别

computed: computed 是 计算属性 ,事实上和 data 对象里的数据属性是同一类的,当其依赖的属性的值发生变化时,计算属性会重新计算,反之,则使用缓存中的属性值。computed中的函数必须使用return返回

methods: methods 里面是用来定义函数的,它需要手动调用才能执行。 而不像 watch 和 computed 那样,“自动执行”预先定义的函数,相比于 watch / computed,methods 不处理数据逻辑关系,只提供可调用的函数 methods 里面定义的是 函数 ,仍然需要去调用它

watch: watch是监听一个值的变化,然后执行对应的回调,类似于监听机制+事件机制。watch中的函数不是必须使用return返回

二、三者的加载顺序

computed: 是在HTML、DOM加载后马上执行的,如赋值;

methods: 用于观察Vue实例上的数据变动;

watch: 必须要有一定的触发条件才能执行,如点击事件

注意:

1、当默认加载的时候,先执行computed再执行watch,不执行methods

2、触发某一类事件后,先执行computed再执行methods然后再是watch