欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue新增属性问题

程序员文章站 2022-06-01 16:06:39
...

最近遇到一个奇怪的问题:描述起来也有点绕口,我总结就是:Vue创建form表单实例并且整体赋值以后,将form中没有被赋到值的几个字段拿出来单独赋值,会造成单独被拿出来的赋值字段在界面中无法点击修改,我这样奇怪赋值的原因是因为后台给我的数据是在两个对象里面,而我界面渲染的数据在一个表单form里面。
最后得出的结论:form表单在data中定义以后,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter,实例创建以后,添加新的属性在实例中,视图不更新,实例值还是会更新的。具体见如下链接:
https://www.jianshu.com/p/71b1807b1815
这个写的不错!
解决办法就是:使用vue.set方法,也是this.$set(this.obj,‘e’,0)方法
我的表单定义,表单赋值语句分别是:

form: {
  title: '',
  theme: '',
  research_direction: '',
  finish_time: '',
  word_count: '',
  unit: '',
  address: '',
  post_code: '',
  achievement: '',
  id: ''
},
this.form = data.subproject[0]
this.$set(this.form,'address',data.train[0].address)

form中除了address,其他字段数据来源与后台传给我的data.subproject[0],address来源于data.train[0].address,我把它们框出来了,这样看更加明了哦!
vue新增属性问题

总结几种写法:

Vue.set(object, key, value)
this.$set(this.obj,‘key’, value)
this.obj = Object.assign({},this.obj,{ a: 1, e: 2 })
有问题欢迎留言交流哟(^U^)ノ~YO

相关标签: 前端 js