【问题标题】:Should I create the deep copy of Vue component parameter?我应该创建 Vue 组件参数的深层副本吗?
【发布时间】:2020-08-27 22:30:32
【问题描述】:

来自 Vue 文档:

所有的 props 在子属性和父属性之间形成一个单向向下的绑定:当父属性更新时,它会向下流向子属性,而不是相反。

但是,如果将父组件data中的嵌套对象或数组作为子组件的参数传递,子组件会改变它,父组件的数据也会改变。

理想情况下,好的框架必须在需要时注意深度复制,但 Vue 没有。 解决方案之一是根据参数值创建副本。我应该这样做吗?

【问题讨论】:

  • “作为子组件的参数”是什么意思?
  • @Michael,抱歉英语不好。 “作为参数传递给子组件”会正确吗?
  • 你的意思是一个路由参数?不是 props 参数吗?
  • @Michael No. 例如,` ` 其中nestedData 来自父母的data: function() { return { foo: "alpha", nestedData: { bar: "bravo" } } }。在这里,nestedData 作为参数传递,命名为payload

标签: vue.js


【解决方案1】:

据我所知,我不认为创建副本是一个好的解决方案。 您的任务的最佳实践是使用 .sync 修饰符!

【讨论】:

  • 如果有什么现在我会远离它在 vue3 中被弃用
  • @Michael 不知道。我想知道他们将如何解决儿童变异道具问题。 .sync 修饰符是一个非常干净的解决方案
猜你喜欢
  • 2012-05-16
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2014-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多