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下利用控制器载入对应脚本
Jul 17 Javascript
De facto standard 世界上不可思议的事实标准
Aug 29 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 Javascript
js substr支持中文截取函数代码(中文是双字节)
Apr 17 Javascript
jQuery下的动画处理总结
Oct 10 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
Feb 26 Javascript
一道关于JavaScript变量作用域的面试题
Mar 08 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
element-ui表格列金额显示两位小数的方法
Aug 24 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
解决 window.onload 被覆盖的问题方法
Jan 14 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中使用模板的方法
2008/05/24 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python生成密码字典的方法
2018/07/06 Python
python使用KNN算法识别手写数字
2019/04/25 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
使用html5制作loading图的示例
2014/04/14 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
婚前保证书
2014/04/29 职场文书
项目建议书模板
2014/05/12 职场文书
法学自荐信
2014/06/20 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
简历中自我评价范文
2015/03/11 职场文书
小学生家长意见
2015/06/03 职场文书
Python类方法总结讲解
2021/07/26 Python