![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=1739329699-BJRyod9Fspi0M9DFlDN0cul1p4AOLzJ0-0-ecfbda38492861ecfdca8bee011bd675)
Vue提供了一种通用的方式来观察和响应Vue实例上的数据变动,那就是watch属性。watch属性是一个对象,它有两个属性:一个是键;另一个是值。键是需要观察的表达式,值是对应回调函数,回调函数得到的参数为新值和旧值。值也可以是方法名,或者包含选项的对象。Vue实例将会在实例化时调用$watch(),遍历watch对象的每一个属性。
提示:不应该使用箭头函数来定义watch函数。
代码如下:
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P67_53025.jpg?sign=1739329699-yE5dD8I8Pwidu2qmO804vd5x7J1XX4ot-0-40917c99164957a08c54b93adec4df20)
运行的效果如图4-7所示。
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P68_8083.jpg?sign=1739329699-f0TVylHfrNRTkkZ26nNrwcVH5k80ggZ1-0-11b34986d5c833c4451f40483e6c5791)
图4-7 watch运行效果图
在上面所显示的代码中,当a的值发生变化时,通过watch的监控,message输出相应的内容。
除了使用数据选项中的watch方法以外,还可以使用实例对象的$watch(),该方法的返回值是一个取消观察函数,用来停止触发回调。代码如下:
![](https://epubservercos.yuewen.com/CC45E5/23721548909464406/epubprivate/OEBPS/Images/Figure-P68_53028.jpg?sign=1739329699-rf9dMb6UHm7HfZq2rUnALmRvtcnlUGFA-0-9e7cb0092504933cb4de13fc6c73b5be)
在上面的代码中,当a的值更新到1时,触发unwatch()来取消观察。单击按钮时,a的值仍然会变化,但是不再触发watch的回调函数。