通过Vue编写一个二级,并且是可以折叠的导航菜单

文章目录

  • 思路
  • 在main.js中 配置axios
  • 导入element样式
  • Home.vue实现静态页面、样式及功能

思路

在侧边栏区域只写了一个二级导航,通过axios获取到侧边栏的数据,通过v-fot循环渲染该数据,形成多个二级菜单
使用elemen-ui进行样式的设置

在main.js中 配置axios

  1. 导入axios包
  2. 配置请求的根路径
  3. 把axios包挂载到vue原型对象上:这样每一个vue组件都可以通过this直接访问到$http,从而去发起ajax请求
// 导入axios包
import axios from 'axios'
// 配置请求的根路径
axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'
// 把axios包挂载到vue原型对象上
Vue.prototype.$http = axios
  1. 在全局使用axios,结合 vue-axios使用
import axios from 'axios'
import VueAxios from 'vue-axios'Vue.use(VueAxios,axios);

导入element样式

plugins文件夹下的element.js文件:
进行按需导入,用到了element-ui中的什么样式就导入什么样式

import Vue from 'vue'
import {Main,Menu,Submenu,MenuItem
} from 'element-ui'// 注册组件
Vue.use(Main)
Vue.use(Menu)
Vue.use(Submenu)
Vue.use(MenuItem)

Home.vue实现静态页面、样式及功能

获取到的菜单数据:

实现方式:

以第一个二级菜单为例:

实现左侧二级菜单的代码:
home.vue文件:

<!-- 侧边栏菜单区域 --><el-menubackground-color="#333744"text-color="#fff"active-text-color="#ffd04b"><!-- 一级菜单 --><!-- 在获取到“左侧菜单”的数据后, 使用 v-for循环 渲染 一级菜单 --><!-- :index="item.id + ''" index的值是用于区分不同导航的,每个一级导航都有一个自己的index值 --><!-- "item.id + '' ;数值 + 空字符串 得到的是 字符串 (index的值必须是字符串类型的): 表示 动态数据绑定, 操作一个二级惨淡,不会影响另一个二级菜单--><el-submenu:index="item.id + ''"v-for="item in menulist":key="item.id"><!-- 一级菜单的模板区域 --><template slot="title"><!-- 图标 --><i class="el-icon-location"></i><!-- 文本 --><span>{{ item.authName }}</span></template><!-- 二级菜单 --><el-menu-item:index="subItem.id + ''"v-for="subItem in item.children":key="subItem.id"><!-- 图标 --><i class="el-icon-location"></i><!-- 文本 --><span>{{ subItem.authName }}</span></el-menu-item></el-submenu></el-menu>

一级菜单使用的是阿里的图标库,二级菜单使用的是element-ui的图标

home.vue文件

<el-container><!-- 侧边栏区域 --><!-- isCollapse 是否折叠也决定了侧边栏的宽度 --><!-- 折叠 true,侧边栏的宽度是64px展开 false(默认),侧边栏的宽度是200px--><el-aside :width="isCollapse ? '64px' : '200px'"><!-- toggle-button按钮 是 用于 设置 左菜单栏折叠展开的 --><div class="toggle-button" @click="toggleCollapse">|||</div><!-- 侧边栏菜单区域 --><!-- unique-opened 只保持一个子菜单 --><!-- unique-opened 与  :unique-opened="true" 是等效的加上 冒号: , true false 就是布尔值不加 冒号: , true false 就是字符串 --><!-- collapse 设置 折叠 或 展开 * 值为true, 折叠* 值为false,展开--><!-- collapse-transition 是否取消 折叠动画取消折叠动画后,效果会更好--><el-menubackground-color="#333744"text-color="#fff"active-text-color="#409eff"unique-opened:collapse="isCollapse":collapse-transition="false"><!-- 一级菜单 --><!-- 在获取到“左侧菜单”的数据后, 使用 v-for循环 渲染 一级菜单 --><!-- :index="item.id + ''" index的值是用于区分不同导航的,每个一级导航都有一个自己的index值 --><!-- "item.id + '' ;数值 + 空字符串 得到的是 字符串 (index的值必须是字符串类型的): 表示 动态数据绑定, 操作一个二级惨淡,不会影响另一个二级菜单--><el-submenu:index="item.id + ''"v-for="item in menulist":key="item.id"><!-- 一级菜单的模板区域 --><template slot="title"><!-- 图标 --><i :class="iconsObj[item.id]"></i><!-- 文本 --><span>{{ item.authName }}</span></template><!-- 二级菜单 --><el-menu-item:index="subItem.id + ''"v-for="subItem in item.children":key="subItem.id"><!-- 图标 --><i class="el-icon-menu"></i><!-- 文本 --><span>{{ subItem.authName }}</span></el-menu-item></el-submenu></el-menu></el-aside><el-main>Main</el-main></el-container><style>
// 左侧菜单栏折叠展开按钮 的 样式
.toggle-button {background-color: #4a5064;font-size: 10px;line-height: 24px;color: #fff;text-align: center;// 设置内容|||之间的距离letter-spacing: 0.2em;cursor: pointer;
}
</style>

Vue实现可折叠导航菜单~非常详细相关推荐

  1. vue、Menu 导航菜单、Menu属性事件、vue Menu 全部导航菜单、vue Menu 全部属性事件

    vue.Menu 导航菜单.Menu属性事件.vue Menu 全部导航菜单.vue Menu 全部属性事件 设计规则 何时使用 代码演示 顶部导航 内嵌菜单 缩起内嵌菜单 只展开当前父级菜单 垂直菜 ...

  2. Vue之ElementUI导航菜单

    参考如下: https://element.eleme.io/#/zh-CN/component/menu 先直接遍历路由列表,显示需要显示的导航元素. <el-menu :default-ac ...

  3. vue+elementUI项目中使用NavMenu导航菜单

    vue+elementUI项目中使用NavMenu 导航菜单 在elementUI官网组件中NavMenu 导航菜单的使用只是简单地运用,在实践项目中还需要配合路由配置.一般后台管理系统不只是导航菜单 ...

  4. Vue前端项目-主页布局-左侧导航菜单(静态)

    目录 1.修改侧边栏组件 2.滚动条样式 3.导入并使用组件 实现效果: NavMenu 的详细用法: https://element.eleme.cn/#/zh-CN/component/menu ...

  5. vue制作导航栏html,Vue如何实现导航栏菜单的方法

    Vue如何实现导航栏菜单的方法 发布时间:2020-08-20 09:42:45 来源:亿速云 阅读:235 作者:小新 这篇文章将为大家详细讲解有关Vue如何实现导航栏菜单的方法,小编觉得挺实用的, ...

  6. ant-design-vue导航菜单a-menu的详细使用

    ant-design-vue导航菜单a-menu的详细使用 一.效果 一.关键的API 二.注意事项 三.代码 此文章包含了递归生成三级菜单,刷新状态保留,只展开一个父级菜单等常见问题. 一.效果 可 ...

  7. vue项目-element UI-NavMenu 导航菜单始终只展开一个

    vue项目-element UI-NavMenu 导航菜单始终只展开一个 全局搜索:unique-opened找到该配置将其改成true unique-opened:是否只保持一个子菜单的展开 < ...

  8. vue 用户点击不同的导航菜单,显示对应菜单所展示的区域

    情景: 导航栏在一个单独组件NavigationBar/index.vue,中间的内容区也是一个单独组件ContentComponents/index.vue,但这个组件都是属于Home子组件,Nav ...

  9. vue项目中引入阿里 iconfont 图标 动态渲染导航菜单图标

    vue + element 后台项目,项目中都是用的 element-ui 的图标 但是导航菜单是通过后台数据渲染的,所以在阿里图标库找了图标给后台,再渲染 步骤一: 在图标库找到想要的图标,加入购物 ...

最新文章

  1. oracle locked time,Oracle里面的用户smsdb无法登录 LOCKED(TIMED)
  2. CG CTF WEB GBK Injection
  3. 小程序 --- Tab组件的封装
  4. IOS Table中Cell的重用reuse机制分析
  5. 【树链剖分】【线段树】树的统计(金牌导航 树链剖分-1)
  6. iOS判断为空或者只为空格
  7. 【ASP.NET】基础补习之验证控件
  8. 错过了秋天的第一杯奶茶,不要错过秋天第一场黑客松
  9. ImageButton 按钮查看商品详细信息
  10. C-Sharp网络编程案例解析(Socket类的使用)
  11. 微信号注册人工服务器,两个方法让你一次性找到微信人工客服,简单而又粗暴!...
  12. 2019辽宁公务员考试:申论突破80+学习计划第二步
  13. Java判断邮箱格式是否正确
  14. 天行健---宇宙的生与死
  15. [导入]MPQ 文件系统完成
  16. Python-定时爬取指定城市天气(一)-发送给关心的微信好友
  17. Axure RP9授权码适合3658版本,亲测可用
  18. 冰河公开了常逛的23大学习网站,赶快收藏
  19. Apache HBase MTTR 优化实践:减少恢复时长
  20. 滚雪球学 Python 第三轮,Python Web 之 Django 的世界

热门文章

  1. array2xml xml2array
  2. js中(function(){…})()立即执行函数写法理解
  3. django - 修改 自增长id,起始值
  4. 【转】pkg-config与LD_LIBRARY_PATH
  5. [Linux笔记]重装windows后重装grub
  6. 彷徨了两天,天慢慢晴朗了,心也爽朗了……
  7. Java 并发 —— Thread、Executor、线程池
  8. sklearn.metrics —— 混淆矩阵及其绘制、Accuracy/Precision/Recall/F1-score
  9. 图案、标签、logo
  10. 机器学习基础(五十三)—— 精确率与召回率(多分类问题精确率和召回率的计算)