对于已经创建的实例,Vue 不允许动态添加根级别的响应式属性
- 使用
Vue.set(object, propertyName, value)
方法向嵌套对象添加响应式属性。 - 使用
vm.$set
实例方法this.$set(this.someObject,'b',2)
,这也是全局 Vue.set 方法的别名。
如何将 data 属性转换为响应式的?
new Vue({
data: {
return {
user: {
username: 'fred',
age: 20
}
}
},
created(){
this.getData();
},
methods: {
getData(){
this.$set(this.user, 'habby', {
one: '游泳',
two: '朗诵'
})
}
}
});
使用了set之后。再重新打印user对象的话。新属性就会被打印出来了。
效果:
user: {
username: 'fred',
age: 20,
habby: {
one: '游泳',
two: '朗诵'
}
}
参考: