在vue中,若直接给一个空对象添加一个属性并且是响应式的,必须使用$set方法,只有这样才能让视图同步刷新。
当对象的属性存在时就赋值,不存在则给其添加属性,再赋值。
//判断属性是否存在 if (!this.user.age) { //参数:对象,要添加的属性名,属性值 this.$set(this.user, "age", 20) } else { this.user.age = 20 }
除了可以给对象添加属性外,还可以对数组添加元素
//给数组arr第二个元素赋值20 this.$set(this.arr, 1, 20)
除了使用this.$set()方法外,还可以使用this.$forceUpdate();进行强制更新,有时需要两个一起使用才能强制刷新视图。