【问题标题】:Emitting object or value in vue.js component child to parent communication将 vue.js 组件子中的对象或值发送到父通信
【发布时间】:2019-07-27 16:36:15
【问题描述】:

我想知道在 vue 组件中向父级发送数据的更好方法。从父母到孩子我传递prop 对象,但从孩子到父母$emit。我应该传递对象还是值?例如:{ product }product.id,我还必须在事件侦听器上重用 { product } 中的一些数据,例如 product.price。我应该使用什么?发出一个对象或仅发出一个值,然后在侦听器函数中循环和条件?

【问题讨论】:

  • 我建议您显示一些相关代码并描述预期结果。 “哪种方式更好”不是一个明确的问题,尽管熟悉架构的人可能会提出一些建议

标签: vue.js vue-component


【解决方案1】:

这在通过引用传递的情况下不起作用。我的意思是它有效,但 Vue 尖叫着不要直接改变道具......

movie 是一个对象,genres 是一个数组。子组件道具和事件

道具:{ 流派:{ 类型:数组, 默认 () { 返回 [] } } }

...

this.$emit('changeGenreList', this.genres)

我必须用 slice() 制作这个数组的本地副本,然后我发出这个副本。

【讨论】:

    【解决方案2】:

    只需在此处使用双向同步:

    @product.sync="product"
    

    在孩子身上:

    this.$emit('update:product', product)
    

    每当您对产品的属性进行更改时。

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2019-04-11
      • 2021-08-15
      • 2019-03-03
      • 2017-10-12
      • 2015-10-29
      • 2020-10-11
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多