我希望不对道具进行硬编码,而只是将任意数量和类型的道具从父母传递给孙子。
我尝试了这个:
<FileListRenderless v-bind="$props" v-on="$listeners">
<!-- <FileListRenderless :attachments="attachments" :isEditMode="isEditMode" :type="type"> -->
效果很好,但是我仍然必须在子组件的props对象中定义它们。还要如何抽象分配给子组件的props对象?
如果您不想在子组件中显式定义props,则应将props作为一个对象传递,例如:
<FileListRenderless :my-props="$props" v-on="$listeners">
这绕过了内置的prop验证。您可以对侦听器执行相同的操作,只需将它们手动附加到组件安装上即可。但是,如果需要这样做,我建议您重新考虑设计。如果您拥有大量可能的道具,那么您可能想找到一种方法来抽象某些逻辑,制作工厂组件,使用指令或使用混合。Vue工具箱中有很多工具。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句