Vue怎么结合Element-Plus封装递归组件实现目录
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇"Vue怎么结合Element-Plus封装递归组件实现目录"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
数据库培训方案
删除数据库中某个值
收银机显示数据库链接失败
部队与网络安全有关的黑板报颜料
数据库非本地
4399光遇是什么服务器
网络安全符合国家标准
天津工商软件开发介绍
网络安全 人民网
电脑如何切换到网络安全模式
服务器大电流设置
广州靠谱的网络数据库维护
检察院网络安全法调研
一人之下手游服务器搭配
联通服务器出现错误怎么办
无锡小牛网络技术有限公司
贵阳新华互联网科技教育
salt网络安全里怎么翻译
网络安全事件的预防
邬贺铨工业互联网的网络技术
龙城选择服务器
上海网络软件开发服务介绍
致远a6如何迁移数据库
数据库mod
泉州易捷软件开发有限公司
河南高校网络安全攻防大赛参赛队
部队如何树立网络安全防范意识
网络安全实施计划及方案
广州金融软件开发报价
阿里云数据库要放大招