应用场景
this.$set常使用在以下场景,如数据明明已经修改,而页面却不显示响应数据值的问题,
出现此问题主要是因为vue2使用响应式数据原理方法(Object.defineProperty)的缺陷,而vue3使用的是proxy+reflect,所以在vue3中没有这个问题
使用方法
使用格式this.$set( target, key, value ),接收三个参数
target:目标对象或数组,如this.list
key:具体目标key值,对象就写key值,数组就写索引
value:需要改变或者更新的具体数值
用法示例:
数组用法
let arr = [{ name: "2323" }, { name: "2323" }, { name: "2323" }];
this.$set(arr, 1, { name: "111" }); //数组用法
console.log(arr);
对象用法
let obj = { name: "wew", age: "23" };
this.$set(obj, 'sex', '男'); //对象用法
console.log(obj);