当在子组件中首次使用无关的store时,触发$subscribe(Vue 2)

noj0wjuj  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(38)

繁殖

https://codesandbox.io/s/pinia-store-usage-in-child-component-triggers-subscribe-in-different-unrelated-store-nvhwq8
https://jsfiddle.net/posva/z0qbvLr3/

重现bug的步骤

点击更改

预期行为

观察者不会触发

实际行为

观察者触发

gpnt7bae

gpnt7bae1#

这似乎发生在普通的Vue 2中:https://jsfiddle.net/posva/z0qbvLr3/,但在Vue 3中没有发生。这可能是由于React系统不使用代理的限制...我将其移动到vue仓库,以防万一。

zf9nrax1

zf9nrax12#

这是一个由于Vue 2的新属性添加检查与Vue 3的工作方式不同而产生的边缘情况。在Vue 3中,我们使用Proxy进行适当的检测,但在Vue 2中,我们通过将父对象本身注册为更改源来实现这一点。deep标志也导致只要有任何依赖项发生变化,watch回调就会一直运行。因此,不幸的是,这是由于Vue 2的响应性限制而产生的边缘情况。

相关问题