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脚手架的安装教程图解

    下面是”vue-cli脚手架的安装教程图解”的完整攻略: 安装Node.js 首先,你应该安装Node.js。Node.js是一个JavaScript运行时环境,可以实现服务器端的JavaScript开发。 如果你还没有安装,可以从Node.js官网下载并安装:https://nodejs.org/ 安装vue-cli vue-cli是一个Vue.js项目的…

    Vue 2023年5月27日
    00
  • vue实现前端保持筛选条件到url并进行同步参数设计

    Vue实现前端保持筛选条件到URL并进行同步参数设计的攻略主要分为以下几个步骤: 第一步:获取参数并解析 我们可以使用vue-router的query属性获取URL参数,然后解析成对象,方便我们进行筛选条件的操作。例如: // 获取URL参数 const query = this.$route.query // 解析参数成Object const filte…

    Vue 2023年5月27日
    00
  • vue props数据传递类型限制方式

    Vue中的props是一种用于父子组件之间传递数据的机制。为了保证数据的正确性和可维护性,我们可以通过对props进行数据传递类型限制方式来限制传递的数据类型,以确保数据能够按照我们的预期运行。 在Vue中,我们可以通过拥有以下数据类型的props: String Number Boolean Array Object Date Function 其中,Ar…

    Vue 2023年5月27日
    00
  • Ant Design moment对象和字符串之间的相互转化教程

    Ant Design 是一款非常流行的 UI 组件库,它提供了大量的组件和工具,其中包括 moment.js 库的一些扩展,用于方便地处理时间和日期。 在 Ant Design 中,我们经常需要在日期选择器、时间选择器以及其他组件中输入和展示时间,而其中的时间值可以用 moment 对象或字符串来表示。此时,就需要将 moment 对象和字符串之间进行转化。…

    Vue 2023年5月27日
    00
  • vue视频播放插件vue-video-player的具体使用方法

    下面是关于vue-video-player的详细使用攻略。 1. 安装vue-video-player 首先需要在你的Vue项目中安装vue-video-player,可以运行下面的命令: npm install vue-video-player –save 或者通过yarn来安装: yarn add vue-video-player 2. 引入vue-v…

    Vue 2023年5月28日
    00
  • Vue如何提升首屏加载速度实例解析

    Vue如何提升首屏加载速度实例解析 前言: Vue 是一个非常流行的前端框架,但默认情况下,Vue 的首屏加载速度可能会比较缓慢。为了解决这个问题,我们需要采用一些技术来提升 Vue 应用的性能,本文将介绍一些方法。 懒加载组件(Lazy Loading) 懒加载组件是 Vue 的一种优化方式,它可以将一部分组件延迟加载,这样可以减少首屏所需要加载的文件数量…

    Vue 2023年5月27日
    00
  • Vue如何实现利用vuex永久储存数据

    Vue是一款前端框架,通过数据驱动方式来实现组件化开发,而Vuex则是Vue的一个状态管理工具,它提供了集中式存储管理应用的所有组件的数据,并保证状态改变是可预测的。在Vue中,我们可以利用Vuex实现永久储存数据。下面就具体介绍一下如何实现。 1. 安装Vuex 在使用Vuex之前,我们需要确保安装了Vuex。可以通过以下命令安装: npm install…

    Vue 2023年5月28日
    00
  • vue在取对象长度length时候出现undefined的解决

    当使用Vue框架的语法时,在某些情况下从一个对象中获取其长度属性时,可能会返回undefined。这通常是由于Vue对象中有未定义的属性造成的。下面是解决这种问题的方法。 方法一:使用计算属性 我们可以使用计算属性来获取Vue对象的长度。通过计算属性,我们可以遍历对象并返回正确的长度。 <template> <div>{{ objec…

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