watch
参考内容:
Vue 提供了 computed,用于完成数据的自动跟踪和处理。但它是自动执行的,而且不能有副作用。
watch
提供了监听数据变化和执行自定义操作的功能。
在这个例子中,我们监听了 number
的变化。如果它的值 >= 3
,就呈现红色的提示文字。
watch - 定义数据监听
watch
类似于 methods
选项,它是一个包含监听方法的对象。
可以监听 data
props
和 computed
中的数据,当数据发生变化时执行对应的方法:
注意:默认情况下,watch
方法无法监听对象属性或数组成员的变化,需要启用 deep
选项。
$watch() - 设置和取消监听
Vue 提供了组件实例方法 this.$watch()
,也可以用来定义数据监听方法。
与 watch
选项不同的是,$watch()
方法可以灵活地设置和取消监听。
$watch()
方法会返回一个的方法,可以用来取消这个监听:
真的需要手动监听吗?
对于上面的例子,我们可以通过 computed
方法自动完成:
对于能够自动完成的数据处理逻辑,使用 computed
会更合适。watch
更适合执行一些副作用,如触发事件或调用接口。