为什么vue数组下标修改监听不到

性能代价和获得的用户体验收益不成正比

先从技术方面讲的话,无非就是数组每个下标都要添加监听器,
无疑会增加内存消耗,
而数组的sort、splice、reverse、shift、unshift等都会触发大量的数组子项的下标更改和变动,
从而触发大量getter和setter,
这在数组长度越大的情况下差异会越明显。
然后从场景里入手应该更有说服力,
因为大部分场景的数组存放的基本是同类型数据,
而且基本是基于需要遍历或者对整体进行操作为主,
而数组更多情况下下标意义没对象的key来得大。
所以可以考虑真实业务中,单独直接更改下标的场景不多,
或者说如果有对应意义的更推荐使用对象。
而对于这块的业务场景和性能方面的衡量以及取舍,
所以得出劫持数组操作方法比对所有数组下标劫持的方案性价比更高。
Vue2利用defineProperty循环绑定的方式是可以实现队数组下标的绑定。
但是费那么大的劲,在一个旧版本上使用旧技术实现的功能,
其实利用新技术很快就可以解决。所以就直接在Vue3使用了Proxy
就解决了Vue2上不能绑定数组下标的问题。
posted @ 2023-09-07 22:02  jialiangzai  阅读(84)  评论(0)    收藏  举报