vue3+element?plus实现侧边栏过程vue.js

这些鬼东西特别繁琐,所以我们喜欢找些现成、开源的所谓后台管理的前端框架,开箱即用。

方便是方便,而且做得还挺好,问题是,有学习成本,要按照它的规则行事。一些功能是怎么实现的,不清楚,除非研究它的源代码。

想改的话,更不容易。一切都靠猜、盲测,一则不好改,二则出了问题也不知道是哪里的毛病,反而欲速则不达。

所以我们之前基于一个空白的vue项目开发,把需要的路由、ajax封装等摞上去。现在是实现侧边栏菜单。点击左侧菜单项,对应页面展示在右侧。

下面是详细介绍,ui框架采用elementplus。

html代码其实简单,左侧菜单用,右侧展示使用

后者不用做啥设置,点击菜单项,结果自然就展示在右侧了。好神奇。

以下是一个包含侧边栏的页面示例。支持二级菜单。

三级或更多就不行了。

{{item2.text}}{{item.text}}

很自然地,打开包含侧边栏结构的页面,应该有一个菜单项默认被选中,同时加载对应的页面。

但是elementplus只提供了选中指定菜单功能,加载页面需要自己完成。

1)默认选中指定的菜单项

设置属性el-menu.default-active。

属性值是el-sub-menu.index或el-menu-item.index

2)加载对应页面

elmentplus只能设置选中菜单项,加载相应页面需要自己动手。

import{useRouter}from"vue-router";constrouter=useRouter();constgotoDefaultPage=(menus)=>{if(menus&&menus.length>0){constpath=router.currentRoute.value.path;//如果当前路径是子菜单,则直接打开子菜单;否则打开第一个子菜单//页面中,使用了菜单项的route作为indexconstto=path.split("/").length>2path:menus[0].route;router.replace(to);}};onMounted(()=>{constmenus=getMenus();gotoDefaultPage(menus);});

好像刷新页面,选中啥的会丢失,页面一片空白?这个问题记得不是很清楚了,现在我没有这个问题。

可能是获取到当前路由,按照路由重新打开。代码见2。

constpath=router.currentRoute.value.path;//如果当前路径是子菜单,则直接打开子菜单;否则打开第一个子菜单//页面中,使用了菜单项的route作为indexconstto=path.split("/").length>2path:menus[0].route;router.replace(to);

每个菜单项前面有个小图标。图标应该在菜单项/路由表二合一的数据中定义。取值从elmentplus的icon中选取。

{path:"p3-1",name:"p3-1",component:()=>import("../views/module3/page1"),meta:{text:"页面A",icon:"Histogram",},},{{item.text}}因为可以使用任意的elementplus的icon,所以索性全局注册

import{createApp}from"vue";importAppfrom"./App.vue";。。。importElementPlusfrom"element-plus";import"element-plus/dist/index.css";import*asElIconsfrom"@element-plus/icons-vue";constapp=createApp(App);app.use(ElementPlus).mount("#app");for(constnameinElIcons){app.component(name,ElIcons[name]);}

在侧边栏结构页面中,如何打开一个新窗口呢?

其实,无论是在普通页面,还是这种侧边栏结构页面,点击一个链接或按钮,打开一个新窗口,代码都是一样的。

但是!里面用到了路由。

如果该路由没有注册,那么在本文所示的侧边栏结构页面中,打开新窗口会失败,页面仍然显示在右侧,没有新开窗口!

这一度让我很困惑,以为需要给个name,然而并没有什么卵用。

按照本文所示的例子,侧边栏结构页面实际上有2个

一个是app.vue里设置了,然后侧边栏结构页面实际上是包含在外面这个中,然后它自己也有一个

两个都没有命名,那么都叫“default”。可能系统采取了就近原则,在侧边栏结构页面中点击新窗口链接,永远都对应它本身这个

然而在定义路由项中,使用components,指定名称,不好使,一点用没有。后来我才发现,新开窗口的链接,或者说是路由,一定要注册,这样就能新开窗口了。

前面的例子,菜单级别只能去到二级。如果要实现无限级,需要使用递归。页面组件递归。

代码如下:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

THE END
1.Sider:ChatGPT侧边栏下面是详细信息: 1并排使用:通过 Sider 的 ChatGPT 侧边栏,你可以在任何标签页上调出 ChatGPT,无需来回切换标签。这就是轻松实现多任务处理。 2 AI 游乐场:我们支持所有大牌——ChatGPT、o1、o1-mini、GPT-4、GPT-4o、GPT-4o mini、Claude 3.5 Sonnet 和 Google Gemihttps://microsoftedge.microsoft.com/addons/detail/sider-chatgpt%E4%BE%A7%E8%BE%B9%E6%A0%8F-vision/dhoenijjpgpeimemopealfcbiecgceod?eqid=87e53e130001ab1400000006646df06c
2.侧边栏布局和响应式布局的对比(SemiDesign)侧边栏布局: 通常将页面分为侧边栏(Sider)和主要内容区域(Content)。 侧边栏通常用于导航、菜单或其他辅助功能,而主要内容区域用于展示核心内容。 在你的代码中,Silider组件就是一个典型的侧边栏布局,侧边栏固定在左侧,右侧是 Header、Content 和 Footer。 https://blog.csdn.net/2202_75695913/article/details/145327361
3.SideBarPlus相似应用下载SideBar Plus 44 次下载 暂无 好评率 0 人评论 SideBar Plus最新版截图 # SideBar Plus最新版 SideBar Plus是一款侧边栏工具,支持多种特性定制。支持多项边栏工具功能,除此之外,还能够自己添加操作应用以及看天气等众多强大的功能,给用户带来方便快捷的使用愉悦感。只有当你体验到时你才会感觉到他的强大之处! https://www.wandoujia.com/apps/6570572
4.sidebar是什么意思sidebar的中文翻译音标读音用法例句1.Remove TheSidebar移除侧边栏 2.ToggleSidebar隐藏;显示侧边栏;框架转换;显示 3.SecondaryBar &SideBar额外的快捷栏;分外的快捷栏 4.SidebarGadget边栏小工具;边栏小东西 5.sidebarpro专业版;侧边栏专业版;侧边栏;侧边工具条 6.SideBarPlus侧边栏;侧边栏增强版;侧边栏增强汉化版 https://danci.gei6.com/sidebar__c8hkehmb.html
5.ElemenPlus实现侧边菜单栏伸缩mob6454cc620c34的技术博客ElemenPlus 实现侧边菜单栏伸缩 内容提要: 动态路由实现逻辑、sidebar侧边栏和面包屑导航。 动态路由 在vue-element-admin的基础上进行二次开发。 动态路由生成逻辑如下图: vue-element-admin 将路由分为:constantRoutes 和 asyncRoutes 用户登录系统时,会动态生成路由,其中 constantRoutes 必然包含,asyncRoutes 会进行https://blog.51cto.com/u_16099169/12109272
6.如何将文档上传到ChatGPTBing_AI_Sidebar">使用 ChatGPT 支持的 Bing AI 侧边栏分析文档 微软在 Edge 浏览器上添加了由 ChatGPT 支持的 Bing 侧边栏,使其在很长一段时间后得到了急需的刷新。这解锁了许多 Edge 浏览器功能,包括直接在浏览器中扫描任何文档的能力。 您无需单独将文件上传到任何网站。您只需在 Edge 浏览器中打开该文件https://m.10100.com/article/23553
7.侧边栏chatgpt,书签,应用程序等SideBarr的前10名好处包括一个强大的侧边栏, 功能,一个快速查找窗口,可让您快速访问选定文本的定义,一个支持所有流行搜索引擎的增强搜索页面,支持SINDBARR -CHATGPT 3.5 API键或GPT -4的Plus用户(新!), 支持黑暗或光模式,一个提供降压渲染,代码突出显示的响应页面,以及停止生成响应或将其复制到剪贴板的能力,许多https://www.chajianxw.com/product-tool/37046.html
8.vite+vue3+Ts+element侧边菜单栏开发 我们之前讲权限的地方已经给大家看过了返回的菜单数据,并封装成了树形结构,所以我们这里菜单就根据保存的菜单数据渲染菜单就可以了。 我们在按照以下层级创建侧边栏需要用到的组件 layout -> components -> Sidebar -> index.vue , SidebarItem.vue, SidebarMenu.vue https://cloud.tencent.com/developer/article/2276062
9.取消标题栏自定义切换成侧边栏,并增加懒路由节省内存·Luan一款Go Wails实现的GUI工具,功能涵盖网站扫描、端口扫描、企业信息收集、子域名暴破、空间引擎搜索、CDN识别等 - 取消标题栏自定义切换成侧边栏,并增加懒路由节省内存 · Luan-CC-DD/Slack@2648acahttps://github.com/Luan-CC-DD/Slack/commit/2648aca9d2659116a3af494dc7de7b83a9944002
10.Shopify侧边栏一级目录标题点击直接进入分类功能介绍:手机端侧边栏导航,含有二级目录的一级标题点击左侧标题处可直接进入对应collection页面,点击右侧+处,可打开二级目录。 打开shopify后台 -- 依次点击Online Store--Actions--Edit Code--搜索并打开sidebar-menu.liquid-- 将目标代码全选替换掉文件中原有代码即可。 https://www.jianshu.com/p/4602a457b781
11.Vue3elementPlus图标和自定义侧边栏图标侧边栏自定义图标的应用 vite+vue3+ts中使用自定义图标 使用elementPlus图标 在项目中引入 npminstall@element-plus/icons-vue import'element-plus/dist/index.css' import*asElementPlusIconsVuefrom'@element-plus/icons-vue' // 图标 for(const[key, component]ofObject.entries(ElementPlusIconsVue)) { https://www.freesion.com/article/73042627581/