Vue怎么结合Element-Plus封装递归组件实现目录
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇"Vue怎么结合Element-Plus封装递归组件实现目录"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获
千家信息网最后更新 2025年11月08日Vue怎么结合Element-Plus封装递归组件实现目录
这篇"Vue怎么结合Element-Plus封装递归组件实现目录"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Vue怎么结合Element-Plus封装递归组件实现目录"文章吧。
前言
如下。

没错,递归组件可以解决我这个困惑,递归无非就是自己调用自己,我们编写好合理的组件渲染逻辑之后,在组件内部自己调用自己,这就是递归组件,接下来请看我的解决步骤吧!
用正则匹配出所有的h标签并且保存在数组中
//这里的str是用MarkdownIt解析生成的html字符串 const menu = [...str.matchAll(/.* /g)]
效果如下
封装函数,将数组中的内容变成父子结构
//我的每个菜单的类型class menuItem { title: string children?: menuItem[] type: number //type为1表示是h2标签 index: number //index表示是type对应的第几个h标签 constructor( title: string, type: number, index: number, children: menuItem[] = [] ) { this.title = title this.children = children this.type = type this.index = index }}export default function (menu: any[]): any[] { //保存所有h min标签 const arr: menuItem[] = [] const arrIndex: number[] = new Array(7).fill(0) // 用于保存前一个层的结点。例如我当前遍历的是type=3的item,那么我需要知道它所属于哪个type=2的item // 如果有就添加到它的children中,如果没有就添加到pre[3]中 const pre = new Array(7).fill(null) //记录h min是哪个标签(例如h2) let minType = null for (const item of menu) { const content = item[0] const type = parseInt(content[2]) const title = content.split(/<\/?h.>/)[1] const menuitem = new menuItem(title, type, arrIndex[type]++) //判断当前type-1项有没有内容,有的话就加入到前一个种类的children中去 if (pre[type - 1]) { pre[type - 1].children.push(menuitem) } //重置当前type的项 pre[type] = menuitem minType = minType ?? type //如果是最小的h标签,就插入 if (type === minType) { arr.push(menuitem) } } return arr}转换的arr结果如下,可以看到,数组中保存了两个顶层目录,children保存了内部的子目录。

封装递归组件fold-item(在使用之前不要忘了导入自己哦)
在foldMenu中使用递归组件
使用效果
更复杂的目录结构也能胜任
以上就是关于"Vue怎么结合Element-Plus封装递归组件实现目录"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
组件
递归
内容
目录
标签
封装
就是
数组
效果
文章
步骤
知识
篇文章
结构
复杂
最小
困惑
接下来
两个
价值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
笔记本能进网络安全模式
沈阳大学毕业论文查重数据库
vb代码 新浪股票数据库
山东实用的外贸软件开发
数据库异地备份最佳方法
c 工厂模式数据库
5e无法安全在服务器上运行
网络安全守则八字
阿里巴巴数据库
海康威视服务器远程管理默认端口
ff14转服务器什么时候打折
服务器运行中怎么设置开机密码
软件开发的盈利预测
哪个软件开发服务好
局域网qq 服务器
ibm服务器生产地址
计算机网络技术相关案例
网络技术开发税率多少
设计一个电子商务的数据库
深信服最新网络安全
社区网络安全知识宣传工作简报
梦幻西游5开刷金数据库
游戏音乐下载软件开发
软件开发的工资是多少钱
静安区智能软件开发质量保障
arcgis9.3做数据库
福盈网络技术怎么样
高中网络技术知识提纲
我校网络安全活动周
如何保证APP网络安全