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 相关文章推荐
JScript的条件编译
May 29 Javascript
关于js获取radio和select的属性并控制的代码
May 12 Javascript
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 Javascript
js的Boolean对象初始值示例
Mar 04 Javascript
复杂的javascript窗口分帧解析
Feb 19 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
May 10 Javascript
使用BootStrap实现悬浮窗口的效果
Dec 13 Javascript
JavaScript数据结构之二叉树的计数算法示例
Apr 13 Javascript
微信小程序开发摇一摇功能
Nov 22 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
Feb 26 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
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
jquery弹出框的用法示例(2)
2013/08/26 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
js实现随机点名小功能
2017/08/17 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
js实现筛选功能
2020/11/24 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
Python接口测试文件上传实例解析
2020/05/22 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
String是最基本的数据类型吗?
2013/06/13 面试题
宿舍违规用电检讨书
2014/02/16 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
委托公证书样本
2015/01/23 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
道歉的话怎么说
2015/05/12 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
周一问候语大全
2015/11/10 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL