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 操作select标签实现代码
May 14 Javascript
js字符串转换成xml对象并使用技巧解读
Apr 18 Javascript
浅谈window对象的scrollBy()方法
Jul 15 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
Jun 24 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
Aug 01 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
Dec 01 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
Feb 04 Javascript
Js经典案例的实例代码
May 10 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 Javascript
Vue 3.0双向绑定原理的实现方法
Oct 23 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
Jun 01 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
php使用session二维数组实例
2014/11/06 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
php fread读取文件注意事项
2016/09/24 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
jquery $.ajax入门应用一
2008/11/19 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
Python splitlines使用技巧
2008/09/06 Python
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
详解python statistics模块及函数用法
2019/10/27 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
12岁生日感言
2014/01/21 职场文书
竞聘书格式及范文
2014/03/31 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
学生保证书格式
2015/02/27 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书