b站黑马Vue2后台管理项目笔记——(2)主页布局(整体,Header,左侧菜单布局)

news2024/11/18 15:33:59

说明:

此项目中使用的是本地SQL数据库,Vue2

其他功能请见本人后续的其他相关文章。

本文内容实现的最终效果如下图:

e.g.点击二级菜单用户列表,就会跳转到用户列表对应的index的地址(用户列表的index=path是users)

目录

二.主页布局:

2.1整体布局

​【导入Container,Header,Aside,Main组件】

2.2 Header布局

【给Header加flex】

2.3左侧菜单布局

 【导入Menu,Submenu,MeunItemGroup,MenuItem组件】

【给导航换背景颜色】

 【梳理代码,去除不需要的第三层】

 【删除没用到的MeunItemGroup组件】

(1)通过接口获取左侧菜单数据

!!!通过axios请求拦截器添加token,保证拥有获取数据的权限:

(2)发起请求获取左侧菜单数据,保存到menulist中

(3)绘制左侧菜单的UI结构

【渲染一级菜单】

!!!【使用v-for实现双层循环】

 【让每个一级菜单名字和data数组的数据动态绑定】

!!!【让每个一级菜单的index的值都动态绑定data中的id】

此处index的值只接受字符串

 【渲染二级菜单】

 【让每个二级菜单名字和data数组的children数据动态绑定】

(4)左侧菜单格式美化

【修改所有被点击到的二级菜单的文字颜色为蓝色】

 【修改所有二级菜单的图标为四个小方块】

 【修改每个一级菜单的图标为不同的图标】

!!!以每个一级菜单的id当作名称,每个一级菜单对应的图标的类名当作值。

【给每个一级菜单的图标和文字之间添加间距】

【设置不能同时展开多个一级菜单】

​编辑【解决左侧菜单右边框看起来有点不对齐的情况】

(5)左侧菜单的折叠展开功能

 【实现点击|||即可展开/折叠左侧菜单】

【关闭折叠动画,去除折叠左侧菜单时候的卡顿】

 【当左侧菜单被折叠时候,左侧菜单背景宽变窄】

(6)实现首页的路由重定向

【新建Welcome.vue文件】

【添加路由占位符】

(7)改造左侧菜单为路由链接

!!!【加上router属性——给整个左侧菜单开启路由模式】

【更换跳转的路由为二级菜单的path,而不是值=id的index】

【将index的值从id换成path】


二.主页布局:

2.1整体布局

 打开element-ui官网,组件-Container布局容器,复制第四个布局的代码:

 将刚刚复制的代码,粘贴到Home.vue中:

在Home.vue中,进行如下修改:删除div,将el-button的退出按钮放到Header处:

【导入Container,Header,Aside,Main组件】

在src-plugins-element.js中,添加以下内容:

 实现的效果:出现大致结构

 在src-components-Home.vue中,添加以下内容:

 实现的效果:

2.2 Header布局

【给Header加flex】

在src-components-Home.vue中,添加以下内容:

 在Home.vue文件中的img中加入assets里面的图片(可自定义):

对应的是下图电商后台管理系统文字左边的那个图片

实现的效果: 

2.3左侧菜单布局

目标效果:

 打开element-ui官网,点击组件-NavMenu导航菜单,参考下图对应的代码:

 

 复制以上相关的代码,粘贴到Home.vue中的侧边栏区的Aside的位置(Aside删掉)。并且删除里面有一些不需要用到的代码:

 【导入Menu,Submenu,MeunItemGroup,MenuItem组件】

在src-plugins-element.js中,输入以下内容:

实现的效果:

【给导航换背景颜色】

修改代码为以下部分: 

 实现的效果:

 【梳理代码,去除不需要的第三层】

修改代码为以下部分:

 【删除没用到的MeunItemGroup组件】

去element.js中删除没用到的组件: 

实现的效果:

(1)通过接口获取左侧菜单数据

参考api文档:

 

!!!通过axios请求拦截器添加token,保证拥有获取数据的权限

 在入口函数main.js中,添加以下内容:

 e.g.实现的效果是:当一开始点登录,然后Network-XHR-Headers-Request Headers里面有个Authorization:

(2)发起请求获取左侧菜单数据,保存到menulist中

参考api文档中的以下内容:

在Home.vue文件中,添加以下内容: 

 以上部分console.log(res)的结果是下图:

(3)绘制左侧菜单的UI结构

【渲染一级菜单】

!!!【使用v-for实现双层循环

在Home.vue中,添加以下内容:

 实现的效果:

 【让每个一级菜单名字和data数组的数据动态绑定】

在Home.vue中,添加以下内容:

 实现的效果:

!!!【让每个一级菜单的index的值都动态绑定data中的id】

在Home.vue中,添加以下内容:

此处index的值只接受字符串

 实现的效果:这样每次点其中一个一级菜单,就是被点击的那个一级菜单展开,其他的一级菜单不会展开。

 【渲染二级菜单】

用v-for循环,循环每个一级菜单的children属性

e.g.  console.log(res)里面每个index里面都有一个children,并且每个二级菜单都有一个id

 【让每个二级菜单名字和data数组的children数据动态绑定】

在Home.vue文件中,添加以下内容:

实现的效果:

(4)左侧菜单格式美化

【修改所有被点击到的二级菜单的文字颜色为蓝色】

在Home.vue文件中,添加以下内容:

 实现的效果:

 【修改所有二级菜单的图标为四个小方块】

打开element-ui官网,组件-icon图标,参考下图的图标:

 在Home.vue文件中,添加以下内容:

 实现的效果:

 【修改每个一级菜单的图标为不同的图标】

参考项目vue_shop文件夹-assets-fonts-demo_fontclass.html的一个本地的字体图标库。

!!!以每个一级菜单的id当作名称,每个一级菜单对应的图标的类名当作值。

e.g.第一个一级菜单的id是125: 

在Home.vue文件中,添加以下内容:

 

实现的效果:

【给每个一级菜单的图标和文字之间添加间距】

在Home.vue文件中,添加以下内容:

实现的效果:

【设置不能同时展开多个一级菜单】

参考element-ui官网-组件-NavMenu导航菜单:

 

 在Home.vue文件中,添加以下内容:

【解决左侧菜单右边框看起来有点不对齐的情况】

当前情况:

 用F12控制台调试之后,在Home.vue中添加以下内容:

 实现的效果:

(5)左侧菜单的折叠展开功能

在Home.vue中添加以下内容:

 实现的效果:

 【实现点击|||即可展开/折叠左侧菜单】

打开element-ui官网,点组件-NavMenu导航菜单,参考以下部分:

 

 在Home.vue中添加以下内容:

 

实现的效果:

默认状态:

 点击|||按钮之后:

 打开element-ui官网,点组件-NavMenu导航菜单,参考以下部分:

【关闭折叠动画,去除折叠左侧菜单时候的卡顿】

在Home.vue中添加以下内容:

 【当左侧菜单被折叠时候,左侧菜单背景宽变窄】

在Home.vue中添加以下内容:

:width="isCollapse ? '64px' : '200px'"表明:

当isCollapse的值是true,即左侧菜单被折叠的时候,背景宽为64px,

当isCollapse的值是false,即左侧菜单展开的时候,背景宽为200px

 实现的效果:当点击|||按钮折叠左侧菜单栏:

(6)实现首页的路由重定向

【新建Welcome.vue文件】

在vue_shop项目文件夹-src-components里面,新建一个文件Welcome.vue:

 

在Welcome.vue中,添加以下内容:

 在src-路由router.js中,添加以下内容:

【添加路由占位符

在Home.vue中,添加以下内容:

实现的效果:点退出之后,重新点击登录按钮,之前默认访问/home页面,但是因为redirect:’/welcome’重定向到了访问/welcome地址。在Home组件的占位符的位置上显示Welcome组件:

(7)改造左侧菜单为路由链接

!!!【加上router属性——给整个左侧菜单开启路由模式

打开Element-ui官网,参考组件-NavMenu导航菜单:

 在Home.vue文件中,添加以下内容:

 实现的效果:

e.g.点击二级菜单用户列表,就会跳转到用户列表对应的index的页面(用户列表的index=id是110)

【更换跳转的路由为二级菜单的path,而不是值=id的index】

【将index的值从id换成path】

在Home.vue中,添加以下内容:

 实现的效果:

e.g.点击二级菜单用户列表,就会跳转到用户列表对应的index的地址(用户列表的index=path是users)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年山东最新道路运输安全员考试真题题库及答案

百分百题库提供道路运输安全员考试试题、道路运输安全员考试预测题、道路运输安全员考试真题、道路运输安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 题干:客运驾驶员从业行为定期考核结果应与企业安全生产奖惩制度…

Gradle 编译Server returned HTTP response code: 401 for URL

Gradle编译项目,Error:Server returned HTTP response code: 401 for URL: http://xxxxxxxxxx 解决方案 打开gradle-wrapper.properties文件 方法一:使用http协议:distributionUrlhttp://repo.xiaoman.cc/repository/gradle/gradle-6.8.2-b…

MCM箱模型实践技术应用与O3形成途径、生成潜势、敏感性分析

查看原文>>>https://mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247578057&idx4&sn9253a074df9937db3d258df14dd563ed&chksm9be2aed9ac9527cfdf270275d499452afded7a165944fdbbe345a4cb53fcd53548969d39c0c2&token850102049&langzh_CN#rd目…

剑指 Offer II 003 前 n 个数字二进制中 1 的个数

给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。 示例 1: 输入: n 2 输出: [0,1,1] 解释: 0 --> 0 1 --> 1 2 --> 10 示例 2: 输入: n 5 输出: [0,1,1,2,1,2] 解释: 0 --> 0 1 --> 1 2 …

Appium基础 — 获取toast信息

1、toast介绍Android中的toast是一种简易的消息提示框,toast提示框不能被用户点击,会根据所设置的显示时间自动消失。toas要appium1.6.3以上版本才支持,appium1.4的版本就别浪费时间了。再来看下toast长什么样,如下图:…

快速幂的几种实现方式

目录快速幂算法快速幂原理代码实现常规计算次幂的方法快速幂(一般)递归求快速幂位运算求快速幂快速幂算法 快速幂 快速幂还是很常用的,例如codeforce上的这道题目: 快速幂就是快速计算底数的n次幂。其时间复杂度为O(log₂N)O(log_₂N)O(log₂​N),与朴素的O(N)相比效率有了极…

SSM配置(备忘)

SSMSSM需要配置的文件配置applicationContext.xml配置database.properties配置mappers/ExamDao.xml在java目录下创建controller、dao、pojo、service目录控制类接口类(dao)实体类(pojo)服务层serviceservice接口类服务层实现类SSM SSM包含框架 spring s…

Linux(centos7)基本操作---用户权限

用户权限基本权限(UGO)设置权限设置属主,属组基本权限(ACL)特殊权限基本权限(UGO) 设置权限 权限的对象分为个人(u),组(g)&#xff…

无货源模式,跨境电商时代的风向标

众所周知,说到电商,我们首先就会想到淘宝、天猫、京东等平台,这些平台近年来发展迅猛,红海一片,可以说已经趋向于饱和状态了。由于国内电商平台严重的同质化竞争,越来越多的卖家开始转战跨境电商。为什么加…

Canary保护机制及绕过

Canary基本介绍 在基本的栈溢出中,我们可以通过没有限制输入长度或限制不严格的函数等向栈中写入我们构造的数据,可写入的数据包括但不限于: 一段可执行的代码(关闭NX防护的前提下) 一段特意构造的返回地址等 … …

基于java SSM校园兼职平台系统设计和实现

基于java SSM校园兼职平台系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 …

CI/CD | 大型企业与开发团队如何进行持续集成与持续发布

Jenkins是当今最流行的持续集成工具之一, 企业选择Jenkins,可以从它的灵活性和自动化能力中获益。但除此之外的其他需求呢?企业规模在不断增大,他们如何在不增加管理负担的情况下,让CI扩展到整个组织,并满足…

rabbit是否支持批量发送?

最近和rabbit一直在打交道, 也是有个问题 Rabbit是否支持批量发送消息 该问题笔者翻阅官方文档与三方博客也没有找到答案,后也是自己去翻阅源码后才大概找到一个不敢确定的答案: BatchingRabbitTemplate 批量rabbit模板 该模板在RabbitTemplate模板的基础上进行了…

springboot配置(备忘)

springboot配置新建项目配置application.properties成功Tips需要配置的东西设置SpringbootstuApplication配置欢迎界面在java目录下创建controller、dao、pojo、service目录(与ssm配置大致相同,注释不同)控制类接口类(dao)实体类(…

使用SysBench压测mysql8.x版本

yum install gcc gcc-c autoconf automake make libtool mysql-devel git mysql git clone https://github.com/akopytov/sysbench.git ##从Git中下载Sysbench cd sysbench ##打开sysbench目录 git checkout 1.0.18 ##切换到sysbench 1.0.18版本 ./autogen.sh ##运行autogen.sh…

读书笔记——上瘾:让用户养成使用习惯的四大产品逻辑

总结 书中核心逻辑就是下面这张图,上瘾的过程由四步组成: 下面以我自己为案例,从四个维度分析:魔兽世界、写博客,这两件事情。 1 触发、行动 行动的目标是获取酬劳。书中提到《福格行为模型》 福格行为模型&…

Windows下gitee的注册和代码提交(图文并茂)

前言 对于我们的程序源来说,我们写的代码保存下来是很有必要的,是为了我们以后方便找到我们的代码,让我们的代码不被丢失。 我们上一篇文章,将了Linux系统下我们的三板斧的指令(点开这个就可以看在Linux下的操作),这时…

法律常识(八)社会保险法全文(附解释)

目录 参考 第一章 总  则 第二章 基本养老保险 第三章 基本医疗保险 第五章 失 业 保 险 第六章 生 育 保 险 第七章 社会保险费征缴 第八章 社会保险基金 第九章 社会保险经办 第十章 社会保险监督 第十一章 法 律 责 任 第十二章 附  则…

Collect-MemoryDump:一款针对Windows的数字取证与事件应急响应工具

关于Collect-MemoryDump Collect- MemoryDump是一款针对Windows的数字取证与事件应急响应工具,该工具能够自动创建Windows内存快照以供广大研究人员或应急响应安全人员进行后续的分析和处理。 项目提供的Collect- MemoryDump.ps1是一个PowerShell脚本文件&#xf…

51单片机学习笔记-7LED点阵屏

7 点阵屏 [toc] 注:笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 注:工程及代码文件放在了本人的Github仓库。 7.1 LED点阵屏介绍 LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列…