代码之家  ›  专栏  ›  技术社区  ›  Perp

如何在vue中将道具从父代传递到孙代

  •  2
  • Perp  · 技术社区  · 7 年前

    我不想硬编码道具,只想把任意数量和类型的道具从父母传给孙子。

    <FileListRenderless v-bind="$props" v-on="$listeners">
    <!-- <FileListRenderless :attachments="attachments" :isEditMode="isEditMode" :type="type"> -->
    

    它工作得很好,但是我仍然需要在子组件中的props对象中定义它们。如何也抽象分配给子组件的props对象呢?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Justin Kahn    7 年前

    如果您不想在子组件中显式定义props,那么应该将props作为一个对象传递,如:

    <FileListRenderless :my-props="$props" v-on="$listeners">
    

    这将绕过内置的道具验证。您可以对侦听器执行相同的操作,只需手动将它们附加到组件挂载上。然而,我建议你重新考虑你的设计,如果你需要这样做。如果你有一个可能的道具,那么你可能想找到一个方法来抽象出某些逻辑,使工厂组件,使用指令,或使用混合。Vue工具箱中有很多工具。

        2
  •  0
  •   Daniel    7 年前

    如果没有更多的上下文,我建议把所有的道具都用 v-bind="$props" . 就像你做的那样。

    bus 或者vuex,但是这些会创建全局级别的变量,这并不总是理想的。

    推荐文章