[vuejs/vue]splice方法实现逻辑导致watch回调参数oldVal取不到正确的值

2025-10-29 558 views
6
版本

2.6.11

复制链接

https://codepen.io/yangdan8/pen/OJPxrYq

重现步骤

点击按钮查看控制台通过直接赋值和拼接并触发watch回调得到参数oldVal不同

预期是什么?

针对直接赋值和拼接不应该有两套API

到底发生了什么?

API不应该有二义性

在未来即将发布的Vue3.0我猜这里的实现逻辑就是正确的了

回答

5

直接赋值和splice本来就是不同的操作,产生的结果也不一样,输出不同的结果是符合预期的。

9

未来VUE3.0实现的API中splice也按这个API?

3

看吞吐量的时候还得考虑一定要使用直接赋值还是splice也可以,这样的API不人性化

1

这与 vue 无关。a、b 都是指针,b 通过直接赋值变成了新的指针。

0

这与 vue 无关。a、b 都是指针,b 通过直接赋值变成了新的指针。

Vue 所做的是可以实现的,没有这么设计