JavaScript

超轻量级php框架startmvc

Vue中的$set的使用实例代码

更新时间:2020-07-31 13:12:01 作者:startmvc
Vue—$set在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次

Vue —$set

在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去;

当我们去看vue文档的时候,会发现有这么一句话:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。

如下代码,给 student对象新增 age 属性


data () {
 return {
 student: {
 name: '',
 sex: ''
 }
 }
}
mounted () { // ——钩子函数,实例挂载之后
 this.student.age = 24
}

原因是:受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。因为 Vue.js 在初始化实例时将属性转为 getter/setter,所以属性必须在 data 对象上才能让 Vue.js 转换它,才能让它是响应的。

要处理这种情况,我们可以使用$set()方法,既可以新增属性,又可以触发视图更新。

但是,值得注意的是,网上一些资料写的$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", 24)
}

总结

以上所述是小编给大家介绍的Vue中的$set的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

vue中$set的使用 vue $set