Vue组件间如何通过Slot实现跨组件数据传递?

2026-06-10 13:170阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计825个文字,预计阅读时间需要4分钟。

Vue组件间如何通过Slot实现跨组件数据传递?

在开发过程中遇到组件间传递插槽的问题,如何实现跨组件传值?

由于在开发类组件树形结构时,插槽需要通过外部递归传递到树的根节点,再通过根节点传递到各个叶子节点。

在开发过程中遇到这样一个问题,如何跨组件传递插槽。因为在开发类似树组件的过程中,插槽需要通过外部传递到树的根节点,然后通过根节点依次传递到各个叶子节点。那么如何把根节点的Slot如传递给子组件呢?
我们在开发过程中,希望可以这样实现重新定义叶子节点的结构:

<data-tree> <template v-slot:node="data"> <div>{{data.title}} - {{data.text}}</div> </template> </data-tree>

那么如何在组件内传递Slot就是一个问题。

嵌套传递

通过固定级别的组件结构里可以通过直接书写<v-slot ...>来传递对应的Slot元素,来实现一层一层的传递。

<data-tree> <data-tree-item> <template :node="data"> <slot :data="data"> xxx </slot> </template> </data-tree-item> </data-tree>

通过在外层创建slot可以逐层将slot进行传递,但是如果过多的嵌套层次,这样就显得很麻烦。

阅读全文

本文共计825个文字,预计阅读时间需要4分钟。

Vue组件间如何通过Slot实现跨组件数据传递?

在开发过程中遇到组件间传递插槽的问题,如何实现跨组件传值?

由于在开发类组件树形结构时,插槽需要通过外部递归传递到树的根节点,再通过根节点传递到各个叶子节点。

在开发过程中遇到这样一个问题,如何跨组件传递插槽。因为在开发类似树组件的过程中,插槽需要通过外部传递到树的根节点,然后通过根节点依次传递到各个叶子节点。那么如何把根节点的Slot如传递给子组件呢?
我们在开发过程中,希望可以这样实现重新定义叶子节点的结构:

<data-tree> <template v-slot:node="data"> <div>{{data.title}} - {{data.text}}</div> </template> </data-tree>

那么如何在组件内传递Slot就是一个问题。

嵌套传递

通过固定级别的组件结构里可以通过直接书写<v-slot ...>来传递对应的Slot元素,来实现一层一层的传递。

<data-tree> <data-tree-item> <template :node="data"> <slot :data="data"> xxx </slot> </template> </data-tree-item> </data-tree>

通过在外层创建slot可以逐层将slot进行传递,但是如果过多的嵌套层次,这样就显得很麻烦。

阅读全文