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 分栏效果实现代码
Aug 29 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
Apr 15 Javascript
Javascript开发之三数组对象实例介绍
Nov 12 Javascript
使用jquery的ajax需要注意的地方dataType的设置
Aug 12 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
Aug 21 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
jQuery模仿单选按钮选中效果
Jun 24 Javascript
Vue.js每天必学之组件与组件间的通信
Sep 08 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
JS轮播图的实现方法2
Aug 25 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
php URL跳转代码 减少外链
2011/06/25 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
python利用装饰器进行运算的实例分析
2015/08/04 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
提升python处理速度原理及方法实例
2019/12/25 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
Tensorflow分批量读取数据教程
2020/02/07 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
python Xpath语法的使用
2020/11/26 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
教师实习的自我鉴定
2013/10/26 职场文书
土木工程毕业生自荐信
2013/11/12 职场文书
生产部厂长助理职位说明书
2014/03/03 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
公司委托书格式范文
2014/10/09 职场文书
后勤工作个人总结
2015/02/28 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
新生开学寄语大全
2015/05/28 职场文书