[vuejs/vue]重复的手表触发器 重复的手表触发行为

2025-10-29 895 views
1
版本

2.6.11

复制链接

codesandbox.io

重现步骤

请打开控制台并输入一个值。此时a属性没有改变,只是触发了一次,但c没有,输入第二个字符时a也没有触发。 我同时观看了三个属性abc,但是当我第一次改变b时a也被触发了,但是c并没有(如果我事先定义好b没有问题了,但是我的属性是动态的,无法最初定义)

预期是什么?

只触发自己的监听器(只触发自己的监听器)

到底发生了什么?

重复手表触发(a不该被触发)

回答

8

这是因为表单中最初并不存在属性 b,所以 Vue 会调用 `getReaction()` 方法this.$set(),从而触发整个对象(包括数组)的响应式行为。正确的解决方法是在表单中声明属性 b。

2

成员

那么为什么属性c没有被触发呢?

9

因为它是一个原始值,而不是一个对象。

4

因为它是一个原始值,而不是一个对象。

谢谢你!!