【发布时间】:2018-07-04 06:33:13
【问题描述】:
当一个对象有很多属性时,父级如何将一个对象传递给一个子级?
我不想使用“传递对象的属性”语法v-bind="myObject",因为我必须单独定义子项中的所有属性(用于验证),而且列表会太长。
我不想使用“传递对象”语法v-bind:myObject="myObject",因为我需要更改子属性的值,这会使它们在父对象中发生变异,从而违反'事件增加,突变减少'。
我可以将整个对象传递给孩子,然后制作属性的本地副本(通过在孩子的数据属性中返回它们)并修改它们。但是当我在父级(使用事件总线)中进行突变时,它们不会传播给子级。 (换句话说,孩子的数据属性没有反应性)。
还有其他选择吗?
【问题讨论】:
-
如果孩子的数据属性是反应性的,它将覆盖本地修改。你想做什么?
-
@JacobGoh 我在父级中有一组类似的对象。每一个都构成了它自己的子组件。用户更新子字段中的字段,并使用 ajax 调用保存它们。 ajax 调用返回新保存的记录副本,我通过事件总线将其传递给父级。
-
@bbsimonbb 我没有使用商店 - 虽然道具很大,但它是简单的父/子关系,没有其他真正的复杂性。
-
父子关系从来都不是简单的 ;-) 商店会更简单。
标签: vue.js