第一:使用$set。直接给学生赋值。虽然可以添加属性,但不会触发视图更新。mounted(){this.student.age=24}原因是:受限于ES5,Vue.js无法检测对象属性的增删改查。因为Vue.js在初始化实例时会将属性转换为getters/setters,所以属性必须在数据对象上,以便Vue.js对其进行转换,使其具有响应性。为了处理这种情况,我们可以使用$set()方法,它不仅可以添加属性,还可以触发视图更新。错误的写法:this.$set(key,value)(ps:vue1.0可能写的)mounted(){this.$set(this.student.age,24)}正确的写法:this.$set(this.data,"key",value')mounted(){this.$set(this.student,"age"),方法二:使用ES6对象.assign更新对象的Object.assign方法用于对象合并,将源对象(source)的所有可枚举属性复制到目标对象(target)。第三种方法:使用强制刷新$forceUpdate()添加this.$forceUpdate();进行强制渲染,达到效果。查资料结果:因为数据层太多,render函数没有自动更新,需要手动刷新。
