2019独角兽企业重金招聘Python工程师标准>>>

antdesign侧边栏菜单,需根据后台返回的数据动态加载菜单列表,在循环填充时会遇到子菜单项<a-sub-menu>拆分问题, 查阅官方文档,在单文件递归菜单中,使用函数式组件递归生成菜单

 "menuList": [{"name": "监控系统","url": "http://192.168.1.100:9999","iconType": "laptop",},{"name": "模块接口","url": null,"iconType": "bars","sidebars": [{"name": "订单模块","url": "http://192.168.1.100:8890//swagger-ui.html","iconType": "italic","children": []}]},{"name": "关于","url": "http://192.168.1.100:9999/about","iconType": "info",}]

根据上述后台传递的json数组, 主组件中代码如下:

<template v-for="item in menuList"><a-menu-item v-if="!item.sidebars.length" :key="item.name"><a-icon :type="item.iconType" /><span>{{item.name}}</span></a-menu-item><sub-menu v-else :menu-info="item" :key="item.name"/>
</template>

其中的<sub-menu>由子组件定义,如下:

<template functional><a-sub-menu:key="props.menuInfo.name"><span slot="title"><a-icon :type="props.menuInfo.iconType" /><span>{{ props.menuInfo.name }}</span></span><template v-for="item in props.menuInfo.sidebars"><a-menu-item:key="item.name"><span>{{ item.name }}</span></a-menu-item></template></a-sub-menu>
</template>
<script>
export default {props: ['menuInfo'],
};
</script>

在<sub-menu>源文件中

<template functional><a-sub-menu:key="props.menuInfo.key"><span slot="title"><a-icon type="mail" /><span>{{ props.menuInfo.title }}</span></span><template v-for="item in props.menuInfo.children"><a-menu-itemv-if="!item.children":key="item.key"><a-icon type="pie-chart" /><span>{{ item.title }}</span></a-menu-item><sub-menuv-else:key="item.key":menu-info="item"/></template></a-sub-menu>
</template>
<script>
export default {props: ['menuInfo'],
};
</script>

其中的<sub-menu>中还包含递归组件

转载于:https://my.oschina.net/u/4131669/blog/3048416

vue+antdesign导航菜单动态加载相关推荐

  1. vue+elementui 中src动态加载图片的时候不起作用

    vue+elementui 中src动态加载图片的时候不起作用 代码如下: <el-table-column align="center" label="宠物图片& ...

  2. vue 根据组件地址动态加载异步组件

    要求:根据列表中配置的组件地址,动态加载组件(webpart) vue 根据组件地址动态加载异步组件 目录结构 index.html components/component1 components/ ...

  3. vue 实现tab切换动态加载不同的组件

    vue 实现tab切换动态加载不同的组件 使用vue中的is特性来加载不同的组件.具体看如下代码:这个功能对于vue比较复杂的页面可以使用上,可以把一个页面的功能拆分出来,使代码更简单.使用方式具体看 ...

  4. Vue下拉框动态加载数据

    Vue下拉框动态加载数据 <template><a-select v-model="model.type" show-search placeholder=&qu ...

  5. vue 项目如何实现动态加载路由?

    一般来说,vue项目实现动态路由的方式大体可分为两种: 前端把路由写好,登录的时候根据用户的角色权限来动态展示路由,(前端控制路由) 后台接口提供当前用户对应权限的路由表,前端通过调接口拿到后处理(后 ...

  6. 后台管理系统中的antd vue中的问题(动态加载列表a-select-option,后台管理中a-selct-option的回显)

    一.antd vue中的a-select的动态加载列表a-select-option 1.既然是动态加载选择框的列表a-select-option,必然存在获取后台数组,并循环 后台数组格式: 数组( ...

  7. java菜单动态加载功能_Javascript实现动态菜单添加

    在注册信息的时候,常常需要通过下拉菜单让用户选择,而且希望用户在第一个下拉框做的选择,影响第二个下拉框的内容.有时候,如果第一个下拉框不作出选择,第二个下拉框根本不会页面上显示,为了给用户呈现一个更清 ...

  8. vue动态跟新layui的select_vue+layui实现select动态加载后台数据的例子

    vue+layui实现select动态加载后台数据的例子 发布时间:2020-09-18 22:51:36 来源:脚本之家 阅读:85 作者:qq_26814945 刚开始由于layui form渲染 ...

  9. vue动态加载路由的实现

    动态加载路由的实现 vue后台管理之动态加载路由 vue路由动态加载

最新文章

  1. CRLB Case Practice ( No.1 )
  2. 代码审查工具 sonarqube 简介
  3. 共享库报错问题及解决方案
  4. Leetcode 232. 用栈实现队列 解题思路及C++实现
  5. zabbix安装php7.0,Centos 7.0安装Zabbix server详细步骤(示例代码)
  6. 机器学习常见基本概念笔记
  7. Activity中 onResume和onPause与onStart()和onStop()的一些思考
  8. 打印iphone支持的所有字体
  9. LINUX下的21个特殊符号
  10. 如何识别媒体偏见_面部识别,种族偏见和非洲执法
  11. 浅谈游戏《武士刀:零》——赛博朋克风格城市中的刀光剑影
  12. 【供应链架构day5】美团供应链架构的演进之道 - 团购时代
  13. html 占用空间 滚动轴_html – 缩放子级上的溢出滚动:X和Y轴上的不同行为
  14. 使用梯子导致的浏览器不能正常使用
  15. 使用Navicat复制MySQL数据库
  16. windows 中NET 命令的使用
  17. IntelliJ Idea 剪切板的复制深度设置(默认是五5条,用着很不爽!)
  18. linux之tomcat安装及前端部署
  19. Oracle分区表概述、分类、使用方法及注意事项
  20. pads铺铜不能开启drp_PADS常见问题全集

热门文章

  1. W/System.err: at android.view.ViewConfiguration.get(ViewConfiguration.java:369)
  2. LeetCode【位运算】371. 两整数之和
  3. Image打包流程-Android10.0编译系统(四)
  4. 测试hadoop安装是否成功
  5. php接口性能测试工具,PHP 应用性能优化指南
  6. android 自定义span_Android自定义可点击的ImageSpan并在TextView中内置View
  7. Spring boot 整合 Mybatis 实现增删改查(MyEclipse版)
  8. Git 中.gitignore 使用和.gitignore 无效的解决方法
  9. 关于SQL漏洞注入(Ado.Net)
  10. IOS UISearchDisplayController 点击搜索出现黑条问题解决方案