Vue qiankun微前端实现详解

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日

相关文章

  • vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件

    使用vue-cli 3来集成vue-bootstrap-datetimepicker日期插件,需要使用以下步骤: 步骤一:安装依赖 在命令行中进入项目根目录,然后运行以下命令来安装需要的依赖: npm install vue-bootstrap-datetimepicker –save 步骤二:引入CSS和JS文件 在你的Vue组件之前,需要引入CSS和J…

    Vue 2023年5月29日
    00
  • 解决Vue大括号字符换行踩的坑

    当我们在Vue模板中使用大括号{{}}输出变量或表达式时,由于内容长度过长,可能会导致字符串在大括号内换行,造成渲染效果异常。在此,需要介绍一些技巧和解决方法,帮助解决这个问题。 解决方法:使用v-pre指令 v-pre指令可以让Vue忽略当前标签中的模板语法,直接输出其中的内容。应用v-pre指令后,大括号内的字符将不再进行转义,也就不会出现意料之外的换行…

    Vue 2023年5月27日
    00
  • vue-cli项目配置多环境的详细操作过程

    为了让大家更好地理解“vue-cli项目配置多环境”的操作过程,下面就给出一份详细的攻略。本攻略会分为以下几个部分: 什么是多环境配置 实现多环境配置的步骤 示例说明 常见问题解答 什么是多环境配置 多环境配置是指,在项目开发中,我们需要针对不同的环境(如开发、测试、生产环境)使用不同的配置参数,如不同的API地址、不同的静态资源路径等。在vue-cli项目…

    Vue 2023年5月28日
    00
  • vue2 全局变量的设置方法

    当使用Vue.js开发时,我们可能需要在多个组件中使用相同的数据或方法,这时候设置全局变量就可以为我们节省不少代码。下面为大家提供一下Vue2全局变量的设置方法: 使用Vue.prototype Vue.prototype 允许我们向 Vue 构造器的原型上添加自定义的属性或方法,这样我们在开发过程中就能在组件中轻松地访问它们。 示例代码: // 在 mai…

    Vue 2023年5月27日
    00
  • vue.js中ref和$refs的使用及示例讲解

    Vue.js中ref和$refs的使用及示例讲解 什么是ref 在Vue.js中,ref是用来获取元素或组件标识的指令,相当于“id”或“class”属性,我们可以在Vue实例中通过$refs对象访问它们。主要有以下两种用法: 1.在DOM元素上使用ref 在DOM元素上使用ref可以获取DOM节点元素,我们可以通过引用这个DOM节点元素,使用原生JavaS…

    Vue 2023年5月28日
    00
  • vue.js 输入框输入值自动过滤特殊字符替换中问标点操作

    下面是“vue.js 输入框输入值自动过滤特殊字符替换中问标点操作”的完整攻略。 一、需求背景 在开发 Web 应用时,有些输入框需要对用户输入的特殊字符进行过滤和转换操作,例如将中文标点符号替换成英文标点符号。这样可以避免用户输入的字符对后续的数据处理、展示等造成影响,提高应用的稳定性和用户使用体验。 二、实现方法 1. Vue 指令实现输入框自动过滤 V…

    Vue 2023年5月27日
    00
  • vue.js单页面应用实例的简单实现

    下面我将详细讲解如何实现vue.js单页面应用的简单实例。 简介 在前端开发中,单页面应用已经成为了很多人关注的焦点。而Vue.js是一种非常流行的实现单页面应用的JS框架。下面我们就来看一下如何利用Vue.js实现简单的单页面应用。 实现步骤 步骤1:安装Vue.js 首先,我们需要安装Vue.js。可以通过以下两种方式进行安装: CDN:通过引入CDN的…

    Vue 2023年5月27日
    00
  • 基于SpringBoot和Vue3的博客平台发布、编辑、删除文章功能实现

    下面我将详细讲解如何基于SpringBoot和Vue3搭建一个简单的博客平台,并实现发布、编辑和删除文章的功能。 准备工作 首先,我们需要搭建开发环境,并且安装必要的工具和依赖。具体的步骤如下: 安装Java SDK:前往 https://www.oracle.com/java/technologies/javase-downloads.html 下载并安装…

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