vue 中watch监听对象,求大神解答
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 中watch监听对象,求大神解答相关的知识,希望对你有一定的参考价值。
同样是对象,为什么route的变化可以直接被watch监听到,不需要deep,而data中定义的一个对象的属性变化却无法被监听到,需要深度监听,请问这是什么原因???难道vue内部对route做了特殊处理吗 ?具体看下面点击按钮时,改变result中属性a的值,直接监听result并无反应 ,29行并不会执行,而同时改变路由参数时,直接监听route却是可以的,32行却会执行。求解!
参考技术A watch分为惰性监听和深度监听,当你需要监听一个对象时,惰性监听无法捕捉到对象的内部属性变化,此时你需要加deep进行深度监听。 建议你多看下watch方面的api描述vue3的监听函数watch基础
参考技术A 基本调用:watch(被监听的数据,回调函数,配置项)单个数据监听
多个数据监听
vue3允许使用多个watch进行监听不同的数据
也可使用将所有要监听的数据放在一个数组里进行监听
直接监听一个reactive数据时,强制开启深度监听,并且无法关闭;此时无法在回调函数中获取oldValue,oldValue会展示成和newValue一样
监听reactive数据的一个属性时,不会强制开启深度监听,并且可正常获取oldValue的值
当reactive数据的一个属性是对象时,监听该对象,需手动设置深度监听,且设置深度监听后无法获取oldValue的值
以上是关于vue 中watch监听对象,求大神解答的主要内容,如果未能解决你的问题,请参考以下文章