若依(ruoyi)框架:如何实现灵活自定义路由配置

这篇具有很好参考价值的文章主要介绍了若依(ruoyi)框架:如何实现灵活自定义路由配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

业务背景

随着项目的深入开发,我们可能会对路由做特殊化处理。比如:访问路由A时需要传入routerType=A,前端会根据routerType=A做一些特殊的处理。

如何实现

方式一:直接在前端路由表(router/index.js)里面某个路由的meta属性里面配置。

若依路由配置,前端有关内容,前端,javascript,开发语言,vue-router,vue.js

这种方法可用于公共路由或固定路由中,而现实开发过程中我们经常遇到的对某个菜单路由的做特殊化处理。还有经常遇到对动态路由的特殊化处理。所以就需要第二种方式。

方式二:在后台返回动态路由的接口中组装meta信息

在若依框架中,获取路由信息接口 /getRouters 中是对存在sys_menu表里的菜单数据进行拼装。

如何改造

步骤:

  1. 在sys_menu表中增加一个属性 meta
  2. RouterVo 类中的 private MetaVo meta 改为 private Map<String,Object> meta
  3. SysMenuServiceImpl类里增加 assembleMeta方法。
/**  
 * 装配路由的Meta信息  
 *  
 * @param menu  菜单  
 * @return Map类型  
 */  
public Map<String,Object> assembleMeta(SysMenu menu) {  
    Map<String,Object> meta = new HashMap<>();  
    if (StringUtils.isNotEmpty(menu.getMenuName())) {  
        meta.put("title",menu.getMenuName());  
    }  
    if (StringUtils.isNotEmpty(menu.getIcon())) {  
        meta.put("icon",menu.getIcon());  
    }  
    if (StringUtils.isNotEmpty(menu.getIsCache())) {  
        meta.put("noCache",StringUtils.equals("1", menu.getIsCache()));  
    }  
  
    if (StringUtils.isNotEmpty(menu.getPath())) {  
        meta.put("link",menu.getPath());  
    }  
    //往路由里面添加扩展元数据  
    if (StringUtils.isNotEmpty(menu.getMeta())) {  
        try {  
            Map<String,Object> metaInfo = (Map<String,Object>)JSONObject.parse(menu.getMeta());  
            meta.putAll (metaInfo);  
        } catch (Exception e) {  
            log.error("元数据JSON数据转换异常{}", e.getMessage());  
        }  
    }  
    return meta;  
}
  1. SysMenuServiceImpl类里的buildMenus方法中setMeta(new MetaVo(menu...))改为setMeta(assembleMeta(menu))

效果展示

若依路由配置,前端有关内容,前端,javascript,开发语言,vue-router,vue.js

使用方法

router.beforeEach((to, from) => {
  // 而不是去检查每条路由记录
  if (to.meta.routerType === 'A') {
    console.log("做一些特殊的处理.....")
    return {
      path: '/login',
      // 保存我们所在的位置,以便以后再来
      query: { redirect: to.fullPath },
    }
  }
})

总结

以上只是在实际开发过程中,根据实际需要做个一下改造,个性化比较强。你也可以在你的项目中做适合自己项目的改造。文章来源地址https://www.toymoban.com/news/detail-798204.html

到了这里,关于若依(ruoyi)框架:如何实现灵活自定义路由配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 若依框架RuoYi项目运行启动教程【傻瓜式教程】

    💂 个人网站:【紫陌】【笔记分享网】 💅 想寻找共同学习交流、共同成长的伙伴,请点击【前端学习交流群】 若依官网 若依在线文档 首先去官网下载代码 链接到码云下载,要么用git下载要么压缩包下载。 然后再IDEA打开项目 想要运行就要搭建好环境 按照文档要求配置环

    2023年04月17日
    浏览(30)
  • java若依框架ruoyi导入Excel(附详细代码)

    【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】 【创作不易,点个赞就是对我最大的支持】 仅作为学习笔记,供大家参考 总结的不错的话,记得点赞收藏关注哦! Excel导入 可能出现的问题 1. 开发模板下载功能(如需定制列,可以单独创建一

    2024年01月23日
    浏览(29)
  • RuoYi若依框架的使用(新增侧边栏菜单并可以打开)

    2022.12.06今天我学习了如何使用若依框架做一个侧边栏的菜单,并且可以打开对应的页面。 一、菜单管理页面 首先在菜单管理页面新增主目录。 如:   自己设置一个路由地址。 二、新增子菜单 然后在创建好的主菜单中再新增子菜单。 如:   组件路径和权限字符的路径一样

    2024年02月12日
    浏览(32)
  • 若依框架ruoyi-vue(前后端版)字典的使用

    显示效果:  状态实际 值为 1,讲师审核中为我们在字典管理中定义的。 步骤:先在ruoyi的字典管理中定义字典 字典管理中  然后根据字典设置自己需要的值 设置完值后,然后是前端表格的数据回显 这里先打开我们的前端vue工程,我们需要回显页面对应的vue文件中 在expor

    2024年02月11日
    浏览(36)
  • 基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(二)

    更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统      之前讲到了流程保存的时候还要看是否是自定义业务流程应用类型,若是保存的时候不再检查是否有关联表单。       那接下来就需要一个自

    2024年02月07日
    浏览(30)
  • 若依框架(RuoYi-Cloud 微服务版本)134节视频教程

    RuoYi-Cloud 是一个 Java EE 分布式微服务架构平台,基于经典技术组合(Spring Boot、Spring Cloud Alibaba、Vue、Element),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源。 在线体验 若依

    2024年02月13日
    浏览(34)
  • 若依框架(RuoYI)项目打包(jar)方法,部署到 Linux 服务器

    在若依框架的 bin 目录下,存在着三个 bat 文件,一个是清除之前的依赖的自动化 bat 脚本( clean.bat ),一个是自动化项目打包的 bat 脚本( package.bat ),一个是运行若依项目的脚本( run.bat ) 将ruoyi-admin 文件夹内的 pom.xml 文件内的 packaging 的值改成 jar 打包前,要清除之前的

    2024年02月12日
    浏览(43)
  • 若依开源框架-微服务版本(ruoyi-Cloud)使用说明-超详细

    JDK 1.8 Mysql 5.7以上 Nacos 2.0.3 Node 14 版本以上 打开网站: RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|J

    2024年02月04日
    浏览(88)
  • 基于若依ruoyi-nbcio支持flowable流程增加自定义业务表单(二)

     更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 之前讲了自定义业务表单,现在讲如何与流程进行关联 1、后端部分 WfCustomFormMapper.xml WfCustomFormMapper.java control接口 CustomFormVo.java 2、前端部分 custo

    2024年02月07日
    浏览(28)
  • 关于 若依框架(前后端隔离版本) 图片映射问题的解决方法 (解决跨域问题,配置代理路由)

    开发代理: 在 vue 项目内的 vue.config.js 配置文件内配置 devserver 配置,在 proxy 参数内配置两个代理路径,如 生产代理: 在 nginx 配置文件 nginx.conf 内配置 图片代理路由,类似 /proc-api/ 一样的路由 参考如下链接,去配置后端图片映射路径 1. addResourceHandler配置静态资源映射本地

    2024年02月13日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包