微前端qiankun动态路由权限设计与数据通信方案

思路:

权限控制中心化:主应用负责统一的管理权限,子路由上报路由信息

动态路由加载:根据用户权限动态注册可用路由

数据通信机制

主应用和子应用:通过qiankun提供的props和全局状态

子应用和子应用:通过全局事件总线或状态管理

代码实现:

主应用配置:路由权限管理(src/permission.js)

复制代码
import {asyncRoutes} from './router'
import {getPermissionFromApi} from '@/api/auth'

const permission = {
    state: {
        routes: [],
        addRoutes: []
    },
    mutations:{
        SET_ROUTES:(state,routes) => {
            state.addRoutes = routes
            state.routes = constantRoutes.concat(routes)
        }
    },
    actions:{
        // 生成动态路由
        GenerateRoutes({commit},roles)
    }
}
相关推荐
站在风口的猪11081 小时前
《前端面试题:CSS对浏览器兼容性》
前端·css·html·css3·html5
青莳吖3 小时前
使用 SseEmitter 实现 Spring Boot 后端的流式传输和前端的数据接收
前端·spring boot·后端
CodeCraft Studio3 小时前
PDF处理控件Aspose.PDF教程:在 C# 中更改 PDF 页面大小
前端·pdf·c#
拉不动的猪4 小时前
TS常规面试题1
前端·javascript·面试
再学一点就睡4 小时前
实用为王!前端日常工具清单(调试 / 开发 / 协作工具全梳理)
前端·资讯·如何当个好爸爸
Jadon_z4 小时前
vue2 项目中 npm run dev 运行98% after emitting CopyPlugin 卡死
前端·npm
一心赚狗粮的宇叔5 小时前
web全栈开发学习-01html基础
前端·javascript·学习·html·web
IT瘾君5 小时前
JavaWeb:前端工程化-ElementPlus
前端·elementui·node.js·vue
爱编程的鱼5 小时前
如何在 HTML 中添加按钮
前端·javascript·html
鱼与宇5 小时前
WebSphere(WAS)
前端·chrome