Vue qiankun微前端实现详解

yizhihongxing

Vue qiankun微前端实现详解

什么是qiankun?

qiankun是一个微前端框架,可以将多个独立的前端应用聚合成一个整体并进行协同工作,达到模块化开发、独立部署、增量升级等目的。

qiankun的优势

  1. 独立部署:每个应用可以独立部署
  2. 按需加载:当访问需要的模块时才进行加载
  3. 模块复用:多个应用之间可以共享Bootstrap、jQuery等公共依赖

Vue中使用qiankun

  1. 安装依赖
npm install qiankun
  1. 在子应用中运行
// 导入加载器
import { registerMicroApps, start } from 'qiankun';

// 子应用配置
const apps = [
  {
    name: 'child-app1', // 子应用名称
    entry: '//localhost:8080', // 子应用地址
    container: '#micro-app', // 容器id
    activeRule: '/child-app1' // 激活规则
  }
]

// 注册子应用
registerMicroApps(apps);

// 启动qiankun
start();
  1. 在主应用中运行
// 导入加载器
import { registerMicroApps, start } from 'qiankun';

// 父应用配置
const apps = [
  {
    name: 'parent', // 父应用名称
    entry: '//localhost:9000', // 父应用地址
    container: '#app', // 容器id
    activeRule: '/' // 激活规则
  }
]

// 注册子应用
registerMicroApps(apps);

// 启动qiankun
start();

示例1:两个Vue应用之间的通信

  1. 在主应用中监听子应用消息
// 订阅消息
window.addEventListener('message', event => {
  // 判断消息是否来自子应用
  if (event.origin !== 'http://localhost:8080') {
    return;
  }

  // 打印消息
  console.log(event.data); // { type: 'hello', data: 'world' }
});
  1. 在子应用中发送消息
// 发送消息
window.parent.postMessage({
  type: 'hello',
  data: 'world'
}, 'http://localhost:9000');
  1. 在主应用中回复消息
// 订阅消息
window.addEventListener('message', event => {
  // 判断消息是否来自子应用
  if (event.origin !== 'http://localhost:8080') {
    return;
  }

  // 判断消息类型
  if (event.data.type === 'hello') {
    // 回复消息
    event.source.postMessage({
      type: 'world',
      data: 'hello'
    }, event.origin);
  }
});
  1. 在子应用中接收回复消息
// 订阅消息
window.addEventListener('message', event => {
  // 判断消息是否来自父应用
  if (event.origin !== 'http://localhost:9000') {
    return;
  }

  // 判断消息类型
  if (event.data.type === 'world') {
    // 打印消息
    console.log(event.data.data); // 'hello'
  }
});

示例2:Vue和React之间的通信

  1. 在React中注册发送消息的方法
// 导入事件总线
import EventEmitter from 'events';

// 实例化事件总线
const emitter = new EventEmitter();

// 注册发送消息的方法
window.sendMessage = (type, data) => {
  emitter.emit(type, data);
};
  1. 在Vue中注册接收消息的方法
// 导入事件总线
import EventEmitter from 'events';

// 实例化事件总线
const emitter = new EventEmitter();

// 注册接收消息的方法
window.addEventListener('message', event => {
  // 判断消息是否来自React
  if (event.origin !== 'http://localhost:9001') {
    return;
  }

  // 判断消息类型
  if (event.data.type === 'hello') {
    // 触发事件
    emitter.emit('hello', event.data.data);
  }
});
  1. 在Vue中发送消息
// 发送消息
window.parent.sendMessage('hello', 'world');
  1. 在React中接收消息
// 导入事件总线
import EventEmitter from 'events';

// 实例化事件总线
const emitter = new EventEmitter();

// 注册接收消息的方法
emitter.on('hello', data => {
  // 打印消息
  console.log(data); // 'world'
});

以上就是“Vue qiankun微前端实现详解”的完整攻略,包含两条示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue qiankun微前端实现详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Hbuilder配置Avalon和Vue指令提示的方法详解

    Hbuilder配置Avalon和Vue指令提示的方法详解 介绍 在Hbuilder中使用Avalon和Vue框架时,我们可能会遇到没有代码提示或者只有部分代码提示的问题,这会给我们的开发带来不便和困扰。本文将会详细介绍如何配置Hbuilder实现Avalon和Vue的完整代码提示。 配置步骤 安装插件 首先,在Hbuilder的插件市场中下载安装Vue和A…

    Vue 2023年5月28日
    00
  • 深入详解Vue3中的Mock数据模拟

    针对您的问题,以下是对“深入详解Vue3中的Mock数据模拟”的完整攻略: 1. 为什么需要Mock数据? 在开发前端应用时,我们通常需要调用后端提供的接口来获取数据。但在开发初期或者后端接口尚未实现时,我们需要模拟数据来进行调试或者协同开发。Mock数据可以模拟后端接口返回的数据,从而能够在前端应用中做到独立开发,提高开发效率。 2. 常用的Mock数据工…

    Vue 2023年5月29日
    00
  • 使用vue导出excel遇到的坑及解决

    当使用Vue来处理数据并导出Excel时,可能会遇到一些问题。以下是关于“使用Vue导出Excel遇到的坑及解决”的完整攻略,其中包含了解决这些问题的步骤和两个示例。 问题和解决方案 问题1:表格的样式丢失 当将数据导出到Excel时,原本应用的样式可能不会保留。这可能是因为Excel的格式化与HTML和CSS不同。 解决方案 可以使用 xlsx-style…

    Vue 2023年5月27日
    00
  • nuxt.js 在middleware(中间件)中实现路由鉴权操作

    要在Nuxt.js中实现路由鉴权操作,可以通过中间件来实现。具体步骤如下: 1. 创建中间件 在Nuxt.js项目中创建一个中间件来实现路由鉴权操作,可以在/middleware目录下创建一个auth.js文件。代码如下: export default function({ route, redirect, store }) { // 获取当前路由信息 co…

    Vue 2023年5月27日
    00
  • Vue中使用 class 类样式的方法详情

    下面我将详细讲解在Vue中使用class样式的方法: 一、Vue中绑定class样式的常见方法 1. 绑定单个class样式 使用v-bind或:直接绑定class属性,即class=”[className]”,[className]为你想要应用的样式类名。 比如我们有一个<div>元素,需要加上red样式: <template> &…

    Vue 2023年5月28日
    00
  • Vue两个版本的区别和使用方法(更深层次了解)

    下面是详细讲解“Vue两个版本的区别和使用方法(更深层次了解)”的完整攻略。 概述 Vue.js是一个流行的JavaScript库,用于构建现代交互式Web界面。Vue.js具有响应式且易于理解的API和一套逐渐增长的生态系统。Vue.js可以通过任何Web服务器和通过浏览器直接访问。 Vue.js的最新版本是Vue3,但Vue2也仍然广泛使用。不同的是,V…

    Vue 2023年5月28日
    00
  • 分享9个Vue的巧妙冷技巧

    下面是分享9个Vue的巧妙冷技巧的完整攻略: 分享9个Vue的巧妙冷技巧 1. 利用v-model双向绑定 v-model是Vue的一个指令,可以在表单元素上进行双向数据绑定。可以用v-model实现一个简单的计数器应用。 <template> <div> <button @click="increment"…

    Vue 2023年5月27日
    00
  • vue3使用自定义hooks获取dom元素的问题说明

    下面我将详细讲解 “vue3使用自定义hooks获取dom元素的问题说明” 的完整攻略。 什么是 Vue3 自定义 Hooks? 在 Vue3 中,自定义 Hooks 是一种可以让我们复用常见逻辑的有效方式,这使得我们可以将相同的代码逻辑封装到一个可重复使用的自定义 Hook 中,然后在组件中使用这些自定义 Hooks。自定义 Hooks 可以用于管理 re…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部