ruoyi-vue 界面框架构造
界面框架:
步骤:
1. 首先实现简单的菜单
1.1 菜单是个菜单项数组 []
1.2 菜单项结构 例子
1.3 新建一个菜单,就叫 TreeMenu
下面代码就是TreeView
菜单组件,里面递归了自己
"level-"+ item.level
: 这是我设计的样式缩进level-1到level-5, panding-left每次增加12pxTreeMenu
递归调用自己绘制形成多级菜单TreeMenu
有一个props
,传递的数据结构就是 上面1.2定义的菜单项结构li
标签里的div中添加click事件toggleMenu
,负责处理是新打开一个菜单项对应的路由还是展开菜单,如:
2. 然后实现AppMain:就是上面界面框架的内容部分
2.1 主要是<router-view></router-view>
来展现菜单对应的路由里组件的内容
keep-alive
表示保活,就是你在打开其他组件的时候,当前组件不会销毁,下次打开不经历beforecreate、created、...、mounted等生命周期,从vue-devtools中也可以看到,他依然挂在AppMain下面,但是它是灰色的。注意:需要保活的组件vue配置的name属性必须配置且唯一。 详细信息见:keep-alive 官方文档keep-alive
的:max="10
表示最多保活十个组件,第十一个进来,第一个则移除,不再保活,防止占用系统过多资源,根据实际需要调整该数keep-alive
的:include="cacheRoute"
表示保活的组件包括这些。如果想让某个组件销毁,不再保活,则将组件对应的路由名称从cacheRoute
中移除即可router-view
个人理解就是用来展示当前路由对应组件的内容。 对这个理解不是太深,看了文档,模模糊糊的。详细信息见:router-view 官方文档router-view
的:key="key"
是打开的路由路径
3. 所打开页面的tag
route-link
:它组件支持用户在具有路由功能的应用中 (点击) 导航。 通过 to 属性指定目标地址,默认渲染成带有正确链接的<a>
标签,可以通过配置 tag 属性生成别的标签(高版本中会抛出警告,说不再支持这个属性,请使用custom)。详细信息见:router-link 官方文档<route-link v-for="item in cacheRoute"
:cacheRoute
中保存的是在keep-alive
保活的组件路由,使用store(VueX)管理closeTab
方法可以将当前tag所代表的路由,从cacheRoute
中移除,然后触发keep-alive的includes所绑定的数据,从keep-alive中移除,移除后会自动执行生命周期的destroyed 钩子进行销毁
4. 路由数据结构
4.1 例子
name
: 1-2的菜单配置里route{name} 要和它一致meta
:它可以根据自己需要填充属性,title
为 tag显示内容,closable
是是否可以关闭
5. Store(VueX)
5.1 相关Store(VueX)的数据结构
6. mixin
6.1 mixin 内容
注意:该mixin需要在组件中混入
7. 界面组件层级
8. 依照7中图片结构实现思路
8.1 先设计路由,计算菜单有哪些,在Vue项目Router中设计好路由信息
8.2 HistoryHome
组件中放入左上下模块:SideView
、TagView
、AppMain
三个模块:菜单、标签栏、显示内容区域
8.3 在SideView
中对着设计好的路由构造menu数据,对vue的Router理解比较深者可以根据路由来生成menu数据,我们项目需要自己手动构造menu数据。然后把构造好的menu数据给TreeView
组件,使其生成菜单项,并绑定点击事件。在点击事件中,处理点击对象是展开/折叠或者路由跳转打开新页面。
8.4 新页面混入上面写的minxin,在created生命周期中将自身的路由对象存入Store
的cacheRoute
,方便TagView
组件遍历展示。同时,将自身的name存入Store
的activeRoute
,便于SideView
和TagView
高亮。
8.5 TagView
利用router-link
,来实现组件跳转。遍历Store
的cacheRoute
,填充route-link
所需要的属性,添加关闭按钮,实现关闭tag方法。在关闭tag方法中,只需要将tag对应的route从cacheRoute
移除即可。router-link
的tag属性不能用了,我使用css控制样式。
8.6 AppMain
组件利用keep-alive
进行组件保活,即发生路由跳转,但是页面不执行销毁操作。使用router-view
显示当前路由对应的组件内容。采用computed
计算属性获取cacheRoute
中存放的路由name属性,形成数组给keep-alive
,这样在 打开新页面/需要关闭页面 时,双向绑定会触发,keep-alive
会自动保活/取消保活组件,与操作联动起来。然后在router-view
中将当前路由的path
给出即可。
__EOF__

本文作者:echo_lovely
本文链接:https://www.cnblogs.com/echo-lovely/p/18406777.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/echo-lovely/p/18406777.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
Vue
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)