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 相关文章推荐
基于JQuery的简单实现折叠菜单代码
Sep 15 Javascript
php对mongodb的扩展(小试牛刀)
Nov 11 Javascript
Javascript基础教程之数组 array
Jan 18 Javascript
jquery实现多条件筛选特效代码分享
Aug 28 Javascript
AngularJs bootstrap详解及示例代码
Sep 01 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
Sep 08 Javascript
js微信支付实现代码
Dec 22 Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
Jul 11 jQuery
js布局实现单选按钮控件
Jan 17 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
Mar 17 Javascript
详细分析Node.js 模块系统
Jun 28 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 HtmlReplace输入过滤安全函数
2010/07/03 PHP
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
Javascript开发包大全整理
2006/12/22 Javascript
cssQuery()的下载与使用方法
2007/01/12 Javascript
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python如何读写json数据
2018/03/21 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
pycharm创建一个python包方法图解
2019/04/10 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
秦兵马俑导游词
2015/02/02 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
高中军训感想
2015/08/07 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS
Django 如何实现文件上传下载
2021/04/08 Python
我去timi了,一起去timi是什么意思?
2022/04/13 杂记