vue $set 方法的理解与使用

日常开发中,因需求需要为拿到的后台接口数据添加部分属性以适配前端组件。
直接给对象添加属性(类似:let obj={};obj.prop='prop')后,发现并不能触发响应更新。
后来看文档发现要通过this.$set 函数动态添加才可用:

//错误:
obj.check = false
//正确:
this.$set(obj,'check', false)

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

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

但是,值得注意的是,网上一些资料写的$set()用法存在一些问题,导致在新接触这个方法的时候会走一些弯路

错误写法:this.$set(key,value)
正确写法:this.$set(this.data,”key”,value’)

参考

猜你喜欢

转载自blog.csdn.net/Beatingworldline/article/details/122036615
今日推荐