vue中如何将父代的props传递给孙代

Per*_*erp 5 vue.js vue-component vuejs2

我不想对道具进行硬编码,而是希望将任意数量和类型的道具从父母传递给孙子。

我试过这个:

<FileListRenderless v-bind="$props" v-on="$listeners">
<!-- <FileListRenderless :attachments="attachments" :isEditMode="isEditMode" :type="type"> -->
Run Code Online (Sandbox Code Playgroud)

效果很好,但我仍然必须在子组件的 props 对象中定义它们。如何也抽象分配给子组件的 props 对象?

Jus*_*ahn 4

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

<FileListRenderless :my-props="$props" v-on="$listeners">
Run Code Online (Sandbox Code Playgroud)

这会绕过内置的 prop 验证。您可以对侦听器执行相同的操作,只需手动将它们附加到组件安装上。但是,如果您需要这样做,我建议您重新考虑您的设计。如果您有大量可能的 props,那么您可能需要找到一种方法来抽象某些逻辑、制作工厂组件、使用指令或使用 mixin。Vue 工具包中有很多工具。