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 没变对吧

0
1
稻魂
nameobj.name、nameobj.engName值发生改变就会执行打印abc。但是视频里是没有执行打印的。老师可以试一下
2021-05-02
共1条回复

慕容6332229

2021-05-01

它就是自动侦听nameobj对象呀,这个nameobj有任何变化,它都会执行。你这里,就是执行console.log。

然后,watchEffect和watch一个显著的区别就是——watch是有惰性的(lazy),即只有nameobj对象有变化时才执行,但watchEffect无需,其是无惰性的,nameobj在未变化时,即初始化时,就会执行,这里也就是console.log也会被执行。

所以,这里并不是说,没有依赖它也执行了console.log(“abc”),而是即使依赖没有变化,初始化时,也执行了console.log(“abc”)。

0
2
慕容6332229
变化时,应该会执行的呢!我也是边看,边自己敲代码,我映像中,我敲的代码执行时,发生改变也会执行的。
2021-05-03
共2条回复

Vue3入门与项目实战 掌握完整知识体系

明星讲师DELL亲授,全方位知识点+高匹配度项目,入门到深度掌握

3382 学习 · 1454 问题

查看课程