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

Vue3/Vuetify模板插槽变量遮蔽:如何同时显示父子对象

解决嵌套v-data-table中插槽变量遮蔽的问题

在嵌套的v-data-table场景中,父子插槽的item变量同名导致父级变量被遮蔽,最简便的解决方式是在父级插槽定义时直接重命名变量,无需额外复杂操作。

方法:重命名父级插槽的item变量

利用ES6对象解构的重命名语法,在父级expanded-row插槽中将原本的item改成自定义名称(比如parentItem),这样父级变量就不会被子级的item覆盖,子级插槽可以同时访问父、子两级的变量。

修改后的代码示例:

<v-data-table :items="someParentItems" ...>
  <template v-slot:expanded-row="{ columns, item: parentItem }">
    PARENT {{ parentItem }}
    <v-data-table :items="someChildItems" ...>
      <template #item.someField="{ item: childItem }">
        CHILD {{ parentItem }} {{ childItem }}
      </template>
    </v-data-table>
  </template>
</v-data-table>

说明

  • 父级插槽通过item: parentItem完成变量重命名,作用域仅局限在当前父级模板内,不会影响其他逻辑。
  • 子级插槽也可按需将item重命名为childItem,让代码语义更清晰,避免变量混淆。
  • 该方式完全基于Vue插槽的原生语法实现,不需要额外的计算属性或方法,操作简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:22:03