【问题标题】:What are some alternatives in vue.js to passing data to child components other than propsvue.js 中有哪些替代方法可以将数据传递给除 props 之外的子组件
【发布时间】:2020-10-13 01:21:22
【问题描述】:

我知道在 vue.js 中从/向父/子组件传递数据的正确模式是将 props 从父级传递给子级,并将事件从子级传递给父级。但这有什么问题吗:

this.$refs['child-component'].setValue(val)

有人告诉我应该谨慎地使用 refs 来访问子组件,并且只有在没有其他方法的情况下。

如果我想更新未绑定到 prop 的子组件中的数组中的字段值怎么办,如下所示:

this.$refs['child-component'].childArray[index] = val;

...childArray 不是子组件的道具?我需要让 childArray 成为子组件的道具吗?但随后维护 childArray 成为父母的责任。如果维护 childArray 不是父组件的业务怎么办?

谢谢。

【问题讨论】:

    标签: vue.js refs vue-props


    【解决方案1】:

    其实,弄乱孩子的内部数据,根本不是父母的事。您不应该直接改变孩子的内部数据 - 相反,请考虑调用方法或发出事件(应由孩子处理)。

    目前,您正在父子节点之间创建紧密耦合 - 现在父节点对子节点内部结构的了解已超载。明天,当您决定更改孩子的实施时(无论出于何种原因) - 很可能您还必须检查所有使用该孩子的父母,以检查您的更改是否违反了这些父母的假设。

    【讨论】:

    • 太棒了!向孩子们发送事件是我一直在寻找的事情之一(尽管我在 OP 中没有提到它)。我发现了这个:stackoverflow.com/questions/42632711/… ... 来解释一下。
    猜你喜欢
    • 2017-04-06
    • 2018-04-14
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多