vue.set可以添加响应式属性
时间: 2024-10-10 20:16:01 浏览: 27
使用Vue.set()方法实现响应式修改数组数据步骤
5星 · 资源好评率100%
Vue.set(也称为`$set`)确实是Vue.js中用于动态添加响应式属性的关键工具。当试图向已存在的非响应式对象或不可观测的原始类型(如基本数据类型)添加新属性时,通常不会自动变成响应式。例如,在普通的JavaScript对象中添加属性,如`this.food.count`,不会使`count`变为响应式[^1]。
为了确保新添加的属性能够触发视图更新并成为响应式的,你需要调用`Vue.set`。这个方法会将新的属性设置为当前实例的数据属性,并将其标记为可观察[^2]。下面是一个示例:
```javascript
// 假设我们有一个初始的 Vue 实例和 food 对象
const vm = new Vue();
let food = {};
// 使用 Vue.set 添加响应式属性
Vue.set(vm.$data, 'food', food); // 这样 food 就成为了实例的一部分
// 现在我们可以安全地添加响应式 count 属性
Vue.set(vm.$data.food, 'count', 0);
console.log('Vue实例上的食物计数:', vm.food.count); // 当 count 改变时,视图会被更新
```
阅读全文