![Vue.js从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/987/44509987/b_44509987.jpg)
上QQ阅读APP看书,第一时间看更新
4.1.4 watch函数
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P67_8066.jpg?sign=1738834503-axr0itilmE67YCBfxtfSiisQ6oYzt3zn-0-90067cae3a3f0b33e1148a2a912540a0)
Vue提供了一种通用的方式来观察和响应Vue实例上的数据变动,那就是watch属性。watch属性是一个对象,它有两个属性:一个是键;另一个是值。键是需要观察的表达式,值是对应回调函数,回调函数得到的参数为新值和旧值。值也可以是方法名,或者包含选项的对象。Vue实例将会在实例化时调用$watch(),遍历watch对象的每一个属性。
提示:不应该使用箭头函数来定义watch函数。
代码如下:
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P67_53025.jpg?sign=1738834503-ZG20wj0ZXIo8OTAYaKOdysoEWszArzdd-0-4d9f904cc578ed8274cbce56e271033b)
运行的效果如图4-7所示。
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P68_8083.jpg?sign=1738834503-ePusoFa5dNBmFtX2prjTMvUTsncqiTsi-0-bc8e700e17d170d99e41a5992fedca2a)
图4-7 watch运行效果图
在上面所显示的代码中,当a的值发生变化时,通过watch的监控,message输出相应的内容。
除了使用数据选项中的watch方法以外,还可以使用实例对象的$watch(),该方法的返回值是一个取消观察函数,用来停止触发回调。代码如下:
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P68_53028.jpg?sign=1738834503-ThPJ8clwf0KMvuJQjOTO3rZg9raWZ4TF-0-b225c7221bb798e4518db3d5ed12d9e5)
在上面的代码中,当a的值更新到1时,触发unwatch()来取消观察。单击按钮时,a的值仍然会变化,但是不再触发watch的回调函数。