【前端打怪升级日志之微前端框架篇】微前端qiankun框架子应用间跳转方法

参考链接
qiankun官网:微应用之间如何跳转?

1.主应用、子应用路由都是hash模式

主应用根据 hash 来判断微应用,无需考虑该问题

2.主应用根据path判断子应用

|----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|---------------------------------|---------------------------------------------------------------------|
| 方法 | 实现 | 适用条件 | 参数传递 | 存在问题 |
| a标签跳转 | <a href="/toA"></a> | | | 页面重新刷新,原来的状态丢失,用户体验不好 |
| h5提供的history.pushState()方法 | history.pushState(state, title, url) 详见:history.pushState() | 微应用的路由模式为histroy | 传参:通过state状态对象 取参:history.state | 不够优雅和友好 |
| 通过props调主应用的路由实例,主应用再去匹配分发到子应用路由 | 在子应用注册时将主应用的路由实例对象传过去,子应用挂载到全局,用主应用的router 跳转。 | router传参和取参 | | * 通过 js 跳转,跳转的链接无法使用浏览器自带的右键菜单(如:Chrome 自带的链接右键菜单) * 多层嵌套子应用是否会出问题? |
| single-spa提供的navigatorToUrl方法 | javascript // 1. 在qiankun.js文件中通过Vue提供的provide选项为所有子应用引入singleSpa依赖 function render(props = {}) { const { singleSpa, } = props; instance = new Vue({ provide: { singleSpa, }, render: h => h(App), }).$mount(container ? container.querySelector('#app') : '#app'); } // 2. 在子应用中调用this.singleSpa.navigateToUrl(`${url}?params`)进行页面跳转并通过URL传参,实例如下: function jumpToOthers(params){ this.singleSpa.navigateToUrl(url); }, | | | |

相关推荐
啊阿狸不会拉杆8 小时前
《计算机网络-自顶向下方法》6.7 回顾:Web页面请求的历程 读书笔记
前端·计算机网络
云上工程笔记8 小时前
四柱记账法和复式记账法有什么区别?复式记账为什么更适合查错和对账
大数据·前端·人工智能
恋猫de小郭8 小时前
Dart Skills CLI 1.0 :AI 时代的 Dart 交付支持
android·前端·flutter
Hilaku8 小时前
为什么技术极强的前端,往往当不好前端 Team Leader?
前端·javascript·程序员
Knight_AL9 小时前
EasyExcel 导入模板踩坑:row.add(““)导致文本格式失效与单元格保护问题解决方案
java·前端·easyexcel
Csvn9 小时前
模板字面量类型:用类型做字符串的正则
前端
倾颜9 小时前
AI Chat 长会话性能实践:消息虚拟化、动态高度与流式滚动设计
前端·react.js·node.js
幸运小圣9 小时前
SSE 与 WebSocket 新手入门:前端实时通信完全指南【JavaScript】
前端·javascript·websocket
艾伦野鸽ggg9 小时前
25级开学 JS 考核题解
前端·javascript
leoZ23110 小时前
2026-09-08-mysql-57-init-walkthrough
前端·javascript·数据库·vue.js·opencv·mysql·adb