【前端】中后台框架 添加其他布局的探索

文章目录


前言

最近使用一个中后台的框架,需要改变一下布局

之前的布局是左边菜单的

现在的需求是:想让页面的顶部是一级菜单,然后屏幕的左边是二级或二级以上的菜单

需求整理

  • 新的布局是一个可切换的选择,也就是在不破坏原有的代码的基础上,新添加另一个可选布局
  • 要考虑路由拆分的动作,因为顶部算是一级路由,左侧算是二级路由
  • 还要考虑页面刷新后的 url 还是有路由信息的,如何回显?

因为我是已经做完了,我应该在做的时候一步一步的去写文章,奈何没啥时间,所以现在的回忆都是复盘,可能有细微的漏洞,望见谅

第一步:实现可切换布局

我的这个中台,这里有个主题设置

在代码中找到这个抽屉是怎么配置的

那么我新增一个名为 multi 类型的主题

然后看他是怎么保存的,是保存到 store 里了,那我们的思路就是去 store 那当前主题类型的值就好了

然后我们找到中台的布局容器,一般叫 layout

我的整体布局组件在这里

然后打开这个文件,修改一下自己的类型判断


第二步:配置页面顶部的路由(一级路由)

这里我把顶部的组件命名为 LayoutMultiTopHeaderBox,用来放路由,Logo 以及右侧配置

其他的先不讲,先看一级路由

思路就是

  • 将一级路由循环出来,并判断它是否有二级路由
  • 如果有:那么就要弹出左侧的菜单
  • 如果没有,路由直接跳转
  • 这里写好的话,如果没有子路由,点击一级路由是可以跳转了的,所以要好好配置 to 的值
  • 注意路由会携带参数的

来看菜单的渲染,以及点击菜单之后的操作

点击菜单之后,将数据村到 store 里

配置好后,测试一下一级菜单是否能跳转吧


第三部:配置左侧二级和二级以上的路由

二级菜单路由同理,就是把 children 里的数组扔到左侧了

这里起了个 LayoutMultiAside 的组件名,打开它来看看

这里建议组件里面也要点进去过一遍,看看用到什么其他依赖的组件,就去复制一份,放到自己的文件夹下并引用,防止影响原有的东西


第四部:给侧边栏加一个动画

用的是自带的 Vue


第五部:刷新页面之后顶部路由、左侧路由的回显

刷新页面之后,如果不配置回显的话,那么就没有 active 的当前路由了,所以我们在生命周期里显式的声明一下

顶部的一级路由的回显逻辑,其实是回显

那么逻辑就是查找 find 就好。

相关推荐
子兮曰7 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰7 小时前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万7 小时前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝7 小时前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
虎头金猫7 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
三十而立洋8 小时前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁8 小时前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
AI职业加油站9 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏10 小时前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
汉堡大王952710 小时前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端