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

本文探讨了在微应用架构中,如何在主应用与子应用间进行路由跳转,涉及hash模式、history方法、props传递、以及使用single-spa的navigatorToUrl方法,同时关注参数传递和浏览器右键菜单兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接
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方法
// 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);
},

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值