vue组件递归的slot传递

组件递归 menuTree.vue

<template>
    <div class="menu-wrapper">
        <div v-for="item in treeMenu" :key="item.code" class="menu-group">
            <div class="menu-item-wrapper">
                <div class="menu-item" :class="{'p-menu': item.pcode === '0'}" :style="`--menu-item-left: ${depth*20+15}px`">
                    <img src="../../../static/images/dc-icon-arrow-down.png" alt="" v-show="item.children && item.children.length" class="icon-arrow">
                    <span class="blank" v-show="!item.children || !item.children.length"></span>
                    <span>{{ item.name }}{{ item.code }}</span>
                </div>
                <div v-show="item.children && !item.children.length">
                    <slot name="tableModule" :currentQuota="item"></slot>
                </div>
                <div class="sub-menu">
                    <template>
                        <menuTree :treeMenu="item.children" :currentQuota="item">
                            <template #tableModule="subItem">
                                <slot name="tableModule" :currentQuota="subItem"></slot>
                            </template>
                        </menuTree>
                    </template>
                </div>
            </div>
            
        </div>
    </div>
</template>

使用组件 index.vue

<menuTree :treeMenu="treeMenu">
        <template #tableModule="{currentQuota}">
          <div>{{ currentQuota.code }}</div>
          <tableModule :currentQuota="currentQuota"></tableModule>
        </template>
      </menuTree>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值