189 8069 5689

VUE如何实现动态给对象增加属性并触发视图更新操作

这篇文章主要介绍了VUE如何实现动态给对象增加属性并触发视图更新操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联是一家集网站建设,枞阳企业网站建设,枞阳品牌网站建设,网站定制,枞阳网站建设报价,网络营销,网络优化,枞阳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

在开发过程中,我们时常会遇到这样一种情况:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的。

根据官方文档定义:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。

Vue 不允许在已经创建的实例上动态添加新的根级响应式属性(root-level reactive property)。然而它可以使用 Vue.set(object, key, value) 方法将响应属性添加到嵌套的对象上。

我们编写如下代码测试给一个对象动态添加属性:


   
  
var vm=new Vue({   el: "#app",   data: {     i:0,     form:{}   },   methods:{     demoSet(){       this.form.amount=this.i++;       //this.$set(this.form,"amount",this.i++);     }   }   });

这种方式可以给form增加一个属性,但是不会界面不会响应更新。

正确的做法:


   
  
var vm=new Vue({   el: "#app",   data: {     i:0,     form:{}   },   methods:{     demoSet(){       this.$set(this.form,"amount",this.i++);     }   }   });

这样就可以给对象添加amount 属性了。

这个有什么应用场景呢,比如 data.form 属性很多,其中大部分是不需要要的,这时候,可以使用这种方法实现动态添加需要的属性。

需要注意的是,这种方式是不能给根数据添加属性的,比如:


   
  
var vm=new Vue({   el: "#app",   data: {   },   methods:{     demoSet(){       this.$set(this,"name","ray");     }   }   });

这种方式给data 增加一个 name 属性是无效的。

为什么要使用Vue

Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。

感谢你能够认真阅读完这篇文章,希望小编分享的“VUE如何实现动态给对象增加属性并触发视图更新操作”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


新闻标题:VUE如何实现动态给对象增加属性并触发视图更新操作
分享地址:http://cdxtjz.cn/article/jhgdep.html

其他资讯