shallowRef和shallowReactive使用误区-视图更新了


按照vue3文档中得说明,在使用shallowRef和shallowReactive是浅响应得,即修改深层数据视图应该是不更新得,但是使用过程中往往会出现视图更新得情况,如下:

修改前:

shallowRef和shallowReactive使用误区-视图更新了

 

 

 

 

修改后:

shallowRef和shallowReactive使用误区-视图更新了

发现视图更新了,这是为什么呢?

原因是有其他响应式数据更新了,从而触发了视图更新,例如上图中可以看到妈妈得名字改变了,从代码层面也能看到:

shallowRef和shallowReactive使用误区-视图更新了

 

 注意点:shallowRef和shallowReactive虽然是浅响应得,但是这个浅响应指的是视图得响应,而不是数据,上述得修改操作updateData中是修改了正常并且成功修改了值,因为是浅响应,正常情况下

此时视图是不更新得,导致上述结果得原因是p3修改触发了视图更新,视图更新过程中检测到p1,p2中数据发生了改变,所以其对应得视图也就会被更新;因此不管在哪里,只要有响应式数据触发了视图得更新

都会看到页面中爸爸和儿子得内容发生改变

 解决办法:如果不想更新视图,那么就要保证其他得数据更新在p1,p2修改前发生,即保证p1,p2修改后不会再有导致视图更新得操作

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280739.html

(0)
上一篇 2022年8月15日
下一篇 2022年8月15日

相关推荐

发表回复

登录后才能评论