关于this.$watch的疑问

关于this.$watch的疑问

这里 this.$watch(key, (value) => {}中的key是rules中的age和name,分别是两个对象,这里为什么是侦听这个key值?是这个对象中的值改变都可以触发watch吗?

另外,为什么改变data中的age和name,会触发watch呢?rules中并没有用过data中的name和age。

辛苦老师解答

https://img1.sycdn.imooc.com//climg/62fd067c09b4eaed10841622.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,解答如下:

1、for in遍历中,变量key(自定义)是属性名,不是整个属性,例如:

https://img1.sycdn.imooc.com//climg/62fd9fc30918d0c503250179.jpg

https://img1.sycdn.imooc.com//climg/62fd9fd60945020403810052.jpg

所以this.$watch()中监听的也是属性名(其实是data中的数据,与这里同名而已)

https://img1.sycdn.imooc.com//climg/62fda0090963b81606180237.jpg

参考文档规定:

https://cn.vuejs.org/api/component-instance.html#watch

https://img1.sycdn.imooc.com//climg/62fda09a09cb905607850170.jpg

name和age的值发生改变就会触发watch监听。

2、因为watch监听的就是data中的数据,rules中设置属性名与data中同名而已,watch监听的还是data中的响应式数据。数据发生改变,会触发watch监听,从而根据rules规则去校验。


祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师