VUE3项目--组件递归调用自身

在组件中递归调用自身时,一定要给组件起个名字。

xml 复制代码
<script lang="ts">
// 组件的递归调用,需要为组件定义一个名字
export default {
  name: 'GGMenu'
}
</script>

下面是组件的完整代码

xml 复制代码
<template>
  <template v-for="menu in menuList" :key="menu.path">
    <template v-if="!menu.children">
      <el-menu-item v-if="!menu.meta.hidden" :index="menu.path">
        <template #title>
          <el-icon>
            <component :is="menu.meta.icon"></component>
          </el-icon>
          <span>{{ menu.meta.title }}</span>
        </template>
      </el-menu-item>
    </template>
    <template v-if="menu.children && menu.children.length == 1">
      <el-menu-item
        v-if="!menu.children[0].hidden"
        :index="menu.children[0].path"
      >
        <template #title>
          <el-icon>
            <component :is="menu.children[0].meta.icon"></component>
          </el-icon>
          <span>{{ menu.children[0].meta.title }}</span>
        </template>
      </el-menu-item>
    </template>
    <template v-if="menu.children && menu.children.length > 1">
      <el-sub-menu v-if="!menu.meta.hidden" :index="menu.path">
        <template #title>
          <el-icon>
            <component :is="menu.meta.icon"></component>
          </el-icon>
          <span>{{ menu.meta.title }}</span>
        </template>
        <!-- Menu组件的自身的递归调用 -->
        <GGMenu :menu-list="menu.children"></GGMenu>
      </el-sub-menu>
    </template>
  </template>
</template>

<script setup lang="ts">
// 获取父组件传递过来的全部路由数组
defineProps(['menuList'])
</script>
<script lang="ts">
// 组件的递归调用,需要为组件定义一个名字
export default {
  name: 'GGMenu'
}
</script>

<style lang="scss" scoped></style>
相关推荐
代码猎人13 小时前
如何实现深拷贝
前端
大鸡爪13 小时前
《Vue3 组件库搭建指北:pnpm + monorepo + 代码提交规范+ BEM 环境配置》
前端·vue.js
UIUV13 小时前
TypeScript深度学习笔记:从动态语言到强类型工程化实践
前端·typescript
代码猎人13 小时前
箭头函数与普通函数有哪些区别
前端
Lazy_zheng13 小时前
一文搞懂 JavaScript 数据类型转换(显式 & 隐式全解析)
前端·javascript·面试
小宇的天下13 小时前
Virtuoso 中的tech file 详细说明
java·服务器·前端
Zoey的笔记本14 小时前
「软件开发缺陷管理工具」的闭环追踪设计与自动化集成架构
java·服务器·前端
Sapphire~14 小时前
【前端基础】04-XSS(跨站脚本攻击,Cross-Site Scripting)
前端·xss
奔跑的web.14 小时前
Vue 3.6 重磅新特性:Vapor Mode 深度解析
前端·javascript·vue.js
MediaTea14 小时前
Python OOP 设计思想 13:封装服务于演化
linux·服务器·前端·数据库·python