vue+iview框架实现左侧动态菜单功能的示例代码


Posted in Javascript onJuly 23, 2020

最近在使用vue-cli3配合iview框架搭建新的项目中用到了iview中的menu菜单,按照官网写法固定不太好,因为一般项目都是从后端动态获取菜单列表,所以我们需要将官网代码稍作修改,代码如下:

注意事项:

【1】菜单高亮部分动态绑定路由跳转的页面

Menu组件中有一个active-name反映的是当前高亮区域,因此可以动态的绑定active-name来实现高亮显示。前提是需要将MenuItem绑定的name也设置成页面路由的name

vue+iview框架实现左侧动态菜单功能的示例代码

【2】动态获取菜单数据,需要更新菜单

this.$nextTick(() => {
 	this.$refs.side_menu.updateOpened()
  	this.$refs.side_menu.updateActiveName()
  });

代码:

<template>
 <div class="leftNav">
 <Menu ref="side_menu" theme="dark" accordion v-for="(menuItem, menuIndex) in menuList" :key="menuIndex" :active-name="$route.name">
 
  <!-- 展开没有子菜单 -->
  <MenuItem v-if="!menuItem.children || menuItem.children.length==0" :key="menuIndex" :name="menuItem.to" :to="menuItem.to">
  <Icon :type="menuItem.icon" />
  <span>{{ menuItem.name }}</span>
  </MenuItem>
 
  <!-- 展开有子菜单 -->
  <Submenu v-else :name="menuIndex">
   <template slot="title">
    <Icon :type="menuItem.icon" />
    <span>{{menuItem.name}}</span>
   </template>
   <MenuItem v-for="(item, index) in menuItem.children" :key="index" :name="item.to" :to="item.to">{{item.name}}</MenuItem>
  </Submenu>
 </Menu>
 </div> 
   
</template>
<script>
export default {
 data() {
 return {
  menuList: [
  {
   name: "首页",
   to: "home",
   icon: "ios-archive-outline"
  },
  {
   name: "关于",
   to: "about",
   icon: "ios-create-outline"
  },
  {
   name: "菜单分类1",
   icon: "md-person",
   children: [
   {
    name: "用户",
    to: "user"
   }
   ]
  },
  {
   name: "菜单分类2",
   icon: "ios-copy",
   children: [
   {
    name: "测试",
    to: "test"
   }
   ]
  }
  ]
 };
 },
 created() {
 // 数据我先写静态的,可在初始化的时候通过请求,将数据指向menuList。
 // ajax成功回调后 this.menuList = response.data;
 // 别忘记更新菜单
 // this.$nextTick(() => {
 //	this.$refs.side_menu.updateOpened()
 //	this.$refs.side_menu.updateActiveName()
 //});
 }
};
</script>
<style lang="scss" scoped>
/deep/
 .ivu-menu-dark.ivu-menu-vertical
 .ivu-menu-item-active:not(.ivu-menu-submenu) {
 border-right: none;
 color: #fff;
 background: #2d8cf0 !important;
}
</style>

效果图:

vue+iview框架实现左侧动态菜单功能的示例代码

到此这篇关于vue+iview框架实现左侧动态菜单的文章就介绍到这了,更多相关vue iview左侧动态菜单内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
使用js操作css实现js改变背景图片示例
Mar 10 Javascript
Javascript字符串浏览器兼容问题分析
Dec 01 Javascript
浅谈JavaScript字符串与数组
Jun 03 Javascript
javascript删除数组重复元素的方法汇总
Jun 24 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
Node.js 8 中的 util.promisify的详解
Jun 12 Javascript
Bootstrap实现可折叠分组侧边导航菜单
Mar 07 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
Layui 设置select下拉框自动选中某项的方法
Aug 14 Javascript
js实现浏览器打印功能的示例代码
Jul 15 Javascript
一百多行代码实现react拖拽hooks
Mar 23 Javascript
JS前后端实现身份证号验证代码解析
Jul 23 #Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 #Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 #Javascript
基于JS实现计算24点算法代码实例解析
Jul 23 #Javascript
javascript递归函数定义和用法示例分析
Jul 22 #Javascript
简单了解vue 插值表达式Mustache
Jul 22 #Javascript
详解node.js 事件循环
Jul 22 #Javascript
You might like
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
小程序实现锚点滑动效果
2019/09/23 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
Android分包MultiDex策略详解
2017/10/30 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
python实现的Iou与Giou代码
2020/01/18 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
介绍一下SQL Server的全文索引
2013/08/15 面试题
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
护士感人事迹
2014/05/01 职场文书
质量月活动总结
2014/08/26 职场文书
田径运动会通讯稿
2014/09/13 职场文书
教师工作表现自我评价
2015/03/05 职场文书
四群教育工作总结
2015/08/10 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
Python制作表白爱心合集
2022/01/22 Python