腾讯无界微前端框架介绍
创始人
2024-09-25 21:22:51
0

一、无界微前端框架概述

无界微前端框架是由腾讯团队推出的,旨在解决现有微前端方案中存在的问题,如适配成本高、样式隔离困难、运行性能不佳、页面白屏、子应用通信复杂、子应用保活机制缺乏等。
在这里插入图片描述

技术实现

无界微前端的核心技术是基于Web Components容器 + iframe沙箱。通过这种方式,它可以实现以下目标:

  • 成本低:无论是主应用还是子应用,使用成本都相对较低。
  • 速度快:子应用首屏打开速度较快,且运行速度快。
  • 原生隔离:通过Web Components实现了严格的样式隔离,而JavaScript则运行在iframe中,保证了代码的隔离。
  • 功能强大:支持子应用保活、子应用嵌套、多应用激活、应用共享等功能。

二、代码实例

下面是一个简单的代码示例,展示如何使用无界框架加载一个微应用:

主应用配置

假设您的主应用使用的是React或Vue,您可以这样配置无界:

// main.js import Wujie from '@wujiejs/wujie';  const wujie = new Wujie({   container: '#app', // 主容器的选择器   apps: [     {       name: 'app1', // 微应用名称       entry: '//localhost:8080', // 微应用入口URL       activeRule: '/app1' // 激活规则     }   ] });  wujie.start(); 

子应用配置

子应用需要做一些简单的配置以便被无界识别:

         App1        

三、子应用通信

无界微前端框架通过多种机制来简化子应用之间的通信,确保通信既简单又高效。

通信机制

无界提供了以下几种通信机制:

  • Window.postMessage: 利用浏览器原生的 postMessage API 来实现跨iframe通信。
  • EventBus: 通过事件总线机制,子应用可以注册事件监听器,并且发送事件到其他子应用或主应用。
  • Props传递: 主应用可以通过props向子应用传递数据。

通信示例

使用 postMessage 发送消息

假设有一个子应用 app1 和一个主应用,app1 向主应用发送消息:

// 在子应用 app1 中发送消息 window.parent.postMessage({ type: 'CUSTOM_EVENT', payload: 'Hello from app1!' }, '*');  // 在主应用中监听消息 window.addEventListener('message', function(event) {   if (event.origin === 'http://localhost:8080') { // 确保来源正确     if (event.data.type === 'CUSTOM_EVENT') {       console.log('Received message:', event.data.payload);     }   } }); 
使用 EventBus 发送事件

假设有一个事件总线,子应用可以通过它发送和接收事件:

// 在子应用 app1 中注册事件监听器 window.__WUJIE__.on('CUSTOM_EVENT', function(data) {   console.log('Received event:', data); });  // 在主应用或其他子应用中发送事件 window.__WUJIE__.emit('CUSTOM_EVENT', { message: 'Hello from main app!' }); 
使用 Props 传递数据

主应用可以向子应用传递数据:

// 主应用配置 const wujie = new Wujie({   container: '#app',   apps: [     {       name: 'app1',       entry: '//localhost:8080',       activeRule: '/app1',       props: {         message: 'Hello from the main app!'       }     }   ] });  // 子应用 app1 接收数据 console.log(window.__WUJIE__.getProps().message); // 输出 "Hello from the main app!" 

四、与qiankun的对比

与另一款流行的微前端框架 qiankun 相比,无界在子应用通信方面有以下优势:

  • 更灵活的通信方式:无界提供了多种通信方式,包括 postMessage、EventBus 和 Props 传递,而 qiankun 主要依赖于 postMessage 和一些扩展API。
  • 更高的安全性:无界通过 iframe 沙箱提供更强的安全隔离,这有助于保护子应用不受恶意代码的影响。
  • 更精细的控制:无界提供了更细粒度的控制选项,例如可以控制子应用何时加载和卸载,这对于优化性能和资源管理非常重要。

总结

无界微前端框架通过提供多样化的通信机制,简化了子应用之间的通信流程,使得开发人员可以轻松地构建出高度可扩展且维护性良好的微前端应用。与 qiankun 相比,无界在通信灵活性和安全性方面具有显著优势。

相关内容

热门资讯

安卓系统app更新软件,And... 亲爱的手机控们,你们有没有发现,最近你的手机里那些熟悉的APP们,好像都悄悄地换上了新装呢?没错,安...
手机怎么安双卡安卓系统,轻松实... 你有没有想过,拥有一部可以同时使用两张SIM卡的手机是多么的方便呢?想象一张卡用来工作,另一张卡用来...
安卓系统卸载软件api,功能与... 手机里的软件越来越多,是不是感觉内存都要不够用了?别急,今天就来给你揭秘安卓系统卸载软件的神秘面纱,...
miui操作系统和安卓系统,深... 亲爱的手机控们,今天咱们来聊聊一个让无数米粉心动的系统——MIUI操作系统,还有那个它背后的老大哥—...
原生安卓系统使用教学,原生安卓... 哇,你手里拿的那部手机,是不是也觉得它有点儿特别呢?它可能没有那些花里胡哨的界面,但它却有着自己独特...
安卓系统玩咸鱼之王,三国名将助... 你有没有发现,最近安卓系统上的游戏圈里,有一款叫做《咸鱼之王》的游戏火得一塌糊涂?没错,就是那个让你...
鸿蒙1.0系统是安卓系统吗,揭... 你有没有听说最近华为的鸿蒙1.0系统?是不是有点好奇,这鸿蒙1.0系统是不是安卓系统的“亲戚”呢?别...
优盘安卓系统用桃,U盘安装An... 你有没有想过,你的电脑也能变身成安卓手机?没错,就是那种可以安装各种APP、玩游戏的安卓手机!这可不...
怎样使用安卓8系统,安卓8系统... 你有没有想过,你的安卓手机其实是个小智能助手,只要你会使用,它能帮你做很多事情呢!今天,就让我来带你...
鼎威安卓系统版本,性能升级与用... 你有没有发现,现在车机系统越来越智能了?这不,鼎威的安卓系统版本就让我眼前一亮。想象坐在车里,手指轻...
安卓系统安装抢红包,轻松成为抢... 亲爱的手机控们,是不是每次微信群里抢红包都感觉手慢无?别急,今天我要给你揭秘如何在安卓系统上轻松安装...
写ios系统和安卓系统的人,揭... 你有没有想过,那些默默无闻的程序员们,他们是如何创造出我们每天离不开的iOS系统和安卓系统呢?想象他...
安卓系统设计尺寸规范,适配与优... 亲爱的设计师们,你是否在为安卓系统的设计尺寸规范而头疼?别担心,今天我要带你一起探索这个神秘的领域,...
旧主机改安卓系统,安卓系统改造... 亲爱的读者们,你是否有过这样的经历:家里的旧主机闲置在角落,看着它那略显过时的外观,心里不禁感叹:“...
安卓系统里有趣的,尽在掌握 探索安卓乐园:那些让你笑出声的趣味游戏 开篇:手机里的欢乐小天地想象你手握一部安卓手机,屏幕上跳动...
法兰规格查询系统安卓,安卓版功... 你有没有想过,在繁忙的工程现场,如何快速找到合适的法兰规格呢?别急,今天就来给你揭秘一个神器——法兰...
目前安卓系统最高配置,极致性能... 你有没有发现,现在的手机越来越厉害了,就像是科幻电影里的高科技产品一样。今天,咱们就来聊聊这个话题:...
安卓修改系统返回键,个性化设置... 你有没有发现,手机里的那个小小的返回键,有时候就像是个顽皮的小家伙,让你摸不着头脑?别急,今天就来教...
安卓订餐系统教程视频,从设计到... 你是不是也和我一样,每天忙碌的生活中,最期待的就是那一顿美味的午餐或晚餐呢?现在,有了安卓订餐系统,...
安卓系统限制外部软件,探索外部... 亲爱的手机控们,你是否曾遇到过这样的烦恼:明明打开了“未知来源”,却还是无法安装那些心仪的外部软件?...