watchEffect问题
来源:6-10 watch 和 watchEffect 的使用和差异性(2)

稻魂
2021-04-30
老师我发现现在写watchEffect(()=>{
console.log(“abc”);
console.log(nameobj.name,nameobj.engName)
})
改变值,没有相关依赖它也会执行console.log(“abc”); ,是更新了吗?
写回答
2回答
-
Dell
2021-05-01
nameobj 没变对吧
012021-05-02 -
慕容6332229
2021-05-01
它就是自动侦听nameobj对象呀,这个nameobj有任何变化,它都会执行。你这里,就是执行console.log。
然后,watchEffect和watch一个显著的区别就是——watch是有惰性的(lazy),即只有nameobj对象有变化时才执行,但watchEffect无需,其是无惰性的,nameobj在未变化时,即初始化时,就会执行,这里也就是console.log也会被执行。
所以,这里并不是说,没有依赖它也执行了console.log(“abc”),而是即使依赖没有变化,初始化时,也执行了console.log(“abc”)。
022021-05-03
相似问题