You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue中如何将所有props动态传递给孙组件

动态传递props到Grandchild组件的实现

要实现无需手动指定参数,自动将Parent传入的grandchildParams所有属性作为props传递给Grandchild组件,直接用Vue的v-bind指令即可完成,步骤如下:

  1. Child组件接收props
    先在Child组件中定义好接收Parent传来的grandchildParams:

    // Child.vue
    export default {
      props: {
        grandchildParams: {
          type: Object,
          required: true,
          default: () => ({})
        }
      }
    }
    
  2. 模板中动态绑定props
    在Child的模板里,给Grandchild组件使用v-bind绑定整个grandchildParams对象:

    <template>
      <p>some extra stuff</p>
      <Grandchild v-bind="grandchildParams" />
    </template>
    

效果说明

当grandchildParams为{ label: 'foo', value: 'bar' }时,Vue会自动将对象中的每个键值对转换为对应的props绑定,等效于手动编写:

<Grandchild :label="grandchildParams.label" :value="grandchildParams.value" />

后续新增任何参数到grandchildParams中,都无需修改Child组件的代码,会自动传递给Grandchild组件。

注意事项

  • Grandchild组件需提前定义好对应的props(Vue3中支持未定义的props,但从代码规范角度建议显式定义);
  • 如果grandchildParams中包含非Grandchild组件props的属性,Vue会自动过滤这些属性,不会传递给Grandchild。

内容的提问来源于stack exchange,提问作者Eduardo Sousa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 08:36:18