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 相关文章推荐
让textarea控件的滚动条怎是位与最下方
Apr 20 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
Feb 25 Javascript
使用iojs的jsdom库实现同步系统时间
Apr 20 Javascript
基于jQuery实现仿微博发布框字数提示
Jul 27 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
Sep 05 Javascript
vue事件修饰符和按键修饰符用法总结
Jul 25 Javascript
解决js ajax同步请求造成浏览器假死的问题
Jan 18 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
JS实现li标签的删除
Apr 12 Javascript
swiper Scrollbar滚动条组件详解
Sep 08 Javascript
vue 限制input只能输入正数的操作
Aug 05 Javascript
js实现简单的随机点名器
Sep 17 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
深入array multisort排序原理的详解
2013/06/18 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
Linux机考试题
2015/07/17 面试题
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
感恩节活动策划方案
2014/05/16 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
家长会欢迎词
2015/01/23 职场文书
Python中的嵌套循环详情
2022/03/23 Python
一级电子管军用接收机测评
2022/04/05 无线电