需求:object.array[index] = value
时调用 setter
给你提供个思路。如果你用过vue就会知道,vue2里面因为要兼容ie9+,数组get和set拦截用的是重写数组原型方法的方式,对索引的操作用的是Vue.set( target, index, value ),底层实现是数组的splice操作。vue3数组直接用proxy就可以实现数据的get,set拦截,只是兼容性不好吧了。 看兼容性,你选择那种吧。
var _value = undefined;
Object.definedPropery(object.array, index, {
set(value) {
_value = value;
// do something
},
get() {
return _value;
}
})
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
利用
Proxy
: