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 静态动态成员 and 信息的封装和隐藏
May 29 Javascript
jqeury-easyui-layout问题解决方法
Mar 24 Javascript
javascript进行数组追加方法小结
Jun 16 Javascript
jQuery中:lt选择器用法实例
Dec 29 Javascript
jQuery中的一些常见方法小结(推荐)
Jun 13 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
Jan 04 Javascript
Vue.js实现实例搜索应用功能详细代码
Aug 24 Javascript
JS严格模式知识点总结
Feb 27 Javascript
详解Vue2 添加对scss的支持
Jan 02 Javascript
Node爬取大批量文件的方法示例
Jun 28 Javascript
微信小程序本地存储实现每日签到、连续签到功能
Oct 09 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 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的cms
2010/12/19 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
php防止用户重复提交表单
2015/11/02 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
js加解密 脚本解密
2008/02/22 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
Javascript中replace()小结
2015/09/30 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
PyQt5响应回车事件的方法
2019/06/25 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
信息技术专业个人自我评价
2013/12/11 职场文书
2014的自我评价
2014/01/13 职场文书
中国好声音华少广告词
2014/03/17 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python