qiankun微前端中主应用路由页面加载微应用的某个路由页面_qiankun 主应用跳转子应用其他路由(2)

打开全栈工匠技能包-1小时轻松掌握SSR

两小时精通jq+bs插件开发

生产环境下如歌部署Node.js

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

网易内部VUE自定义插件库NPM集成

谁说前端不用懂安全,XSS跨站脚本的危害

webpack的loader到底是什么样的?两小时带你写一个自己loader

  1. 主应用给这个路由注册一个通配符的子路由,内容为空。
const routes: Routes = [
  {
    path: 'portal',
    component: PortalComponent,
    children: [{ path: '\*\*', component: EmptyComponent }],
  },
];

  1. 微应用的 activeRule 需要包含主应用的这个路由 path。
registerMicroApps([
  {
    name: 'app1',
    entry: 'http://localhost:8080',
    container: '#container',
    activeRule: '/portal/app1',
  },
]);

  1. 在这个路由组件的 ngAfterViewInit 周期调用 start 函数,注意不要重复调用。
import { start } from 'qiankun';
export class PortalComponent implements AfterViewInit {
  ngAfterViewInit(): void {
    if (!window.qiankunStarted) {
      window.qiankunStarted = true;
      start();
    }
  }
}

qiankun在vue框架下history 和hash路由模式的使用

在这里插入图片描述

一、主应用是hash模式

说明:

主应用是 hash 模式时,一般微应用也是 hash 模式。主应用的一级 hash 路径会分配给对应的微应用(比如 #/base1 ),此时微应用如果需要在 base 路径的基础上进行 hash 模式下的二级路径跳转(比如 #/base1/child1 ),这个场景在当前 VueRouter 的实现方式下需要自己手动实现,给所有路由都添加一个前缀即可。VueRouter 的 hash 模式下的 base 参数不支持添加 hash 路径 base。

当主应用是 hash 模式时,微应用history模式时,我尝试了下,跳转出现各种bug问题,这里不展示了。

下面展示: 主应用hash模式 + 微应用hash模式

主应用配置 : hash模式

  • router/index.js (路由配置)
// 一般hash模式下,不通过base:"/vue"这样添加前缀
const router = new VueRouter({
  // mode: 'history', 
  mode: 'hash',
  base: process.env.BASE\_URL,
  routes
})

  • main.js 配置:

qiankun 主应用根据 activeRule 配置激活对应微应用
激活路由需要添加#/前缀
在这里插入图片描述

  • 子级vue应用配置:hash模式

需要在每个路由里面添加激活前缀/vue
注意: 这里不能加 #/vue这个前缀,前缀跟主应用的激活路由匹配
在这里插入图片描述
效果图
在这里插入图片描述

二、主应用是history模式

说明:

当主应用是 history 模式且微应用也是 hash模式时,表现完美。如果微应用需要添加 base 路径,设置子项目的 base 属性即可。

代码示例: 主应用history模式 + 微应用hash模式

主应用配置: history模式

  • main.js 配置:

不用添加前缀#/在这里插入图片描述

  • router/index.js配置

在这里插入图片描述

  • 微应用vue配置:hash模式

在这里插入图片描述

路由效果图:
在这里插入图片描述

说明:

当主应用是 history 模式,微应用是 history 模式,表现完美。(条件允许推荐使用)

代码示例: 应用是history 模式 + 微应用 history 模式

主应用配置: history模式

react和vue的比较

相同
1)vitual dom
2)组件化
3)props,单一数据流

不同点
1)react是jsx和模板;(jsx可以进行更多的js逻辑和操作)
2)状态管理(react)
3)对象属性(vue)
4)vue:view——medol之间双向绑定
5)vue:组件之间的通信(props,callback,emit)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

react)
3)对象属性(vue)
4)vue:view——medol之间双向绑定
5)vue:组件之间的通信(props,callback,emit)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-rU8jfQWR-1715155880081)]

[外链图片转存中…(img-VoecbzUr-1715155880082)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值