IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> qiankun微前端中主应用路由页面加载微应用的某个路由页面 -> 正文阅读

[JavaScript知识库]qiankun微前端中主应用路由页面加载微应用的某个路由页面

必须保证微应用加载时主应用这个路由页面也加载了。

vue + vue-router 技术栈的主应用:

  1. 主应用注册这个路由时给 path 加一个 *,注意:如果这个路由有其他子路由,需要另外注册一个路由,仍然使用这个组件即可。
const routes = [
  {
    path: '/portal/*',
    name: 'portal',
    component: () => import('../views/Portal.vue'),
  },
];
  1. 微应用的 activeRule 需要包含主应用的这个路由 path。
registerMicroApps([
  {
    name: 'app1',
    entry: 'http://localhost:8080',
    container: '#container',
    activeRule: '/portal/app1',
  },
]);
  1. 在 Portal.vue 这个组件的 mounted 周期调用 start 函数,注意不要重复调用。
import { start } from 'qiankun';
export default {
  mounted() {
    if (!window.qiankunStarted) {
      window.qiankunStarted = true;
      start();
    }
  },
};

react + react-router 技术栈的主应用:

只需要让微应用的 activeRule 包含主应用的这个路由即可。

angular + angular-router 技术栈的主应用,与 vue 项目类似:

  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模式

在这里插入图片描述

  • router/index.js配置

在这里插入图片描述

  • 微应用vue配置:history模式

history 模式下可用base:’/vue’ 添加激活前缀
在这里插入图片描述

不使用base添加激活前缀,手动添加
在这里插入图片描述

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

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:02:03  更:2022-04-29 12:05:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:42:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码