this.someObject = Object.assign({}, this.someObject, { a: 1, b: 2 })
vue中在一个数组中,通过循环添加一个新属性,添加后数据变了,属性没有改变。这是为什么呢?
这里唯一的例外是使用Object.freeze(),这会阻止修改现有的属性,也意味着响应系统无法再追踪变化。以下是一些具体的分析:
Vue不允许在已经创建的实例上动态添加新的根级响应式属性。然而它可以使用 Vue.set(obj,key,value) 方法将响应式属性添加到嵌套对象上:
还可以使用vm.$set实例方法,这也是全局Vue.set方法的别名。
有时你想向一个已有对象添加多个属性,例如使用 Object.assign() 或 _.extend() 方法来添加属性。但是,这样添加到对象上的新属性不会触发更新。在这种情况下可以创建一个新的对象,让它包含原对象的属性和新的属性:
有这样一个场景: v-for 渲染一个列表有10个子项,并且把第5个子项后的元素都添加一个属性 data-wow-delay='0.8s' ,实现如下:
可以得出一个给元素添加自定义属性的方法
当然,如果只是添加一个常见属性(css属性),例如class,style等,下面这种方法也可以。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)