微前端实践

基于qiankun的微前端架构实践 本文分享了基于qiankun的微前端实践方案,通过React主应用集成Vue/React子应用,实现多技术栈协同开发。主应用负责整体布局和子应用管理,使用qiankun的registerMicroApps注册子应用,并通过全局状态管理实现主-子应用通信。子应用需导出bootstrap、mount、unmount生命周期函数,并配置webpack为UMD格式输出。该架构支持独立开发和部署,同时保持用户体验一致性,有效解决了大型前端应用的模块化拆分与整合问题。 阅读详情

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、微前端是什么?

在项目迭代中,随着业务的发展壮大,项目的功能模块通常也会越来越多。可能原来所有的代码模块都在一个仓库里,由一个团队负责。但随着功能模块越来越多,一个团队可能负责不过来,需要多个团队来专门维护不同的模块。相应的代码也会被拆到多个仓库里,并且各模块能独立开发、部署更新。通常虽然项目被拆成了多个模块,但为了维持整体统一性以及用户体验,各模块依然都会挂在统一的入口下。

![在这里插入图片描述](https://img-blog.csdnimg.cn/46ca7ceb4a824acd86942c9478313b9a.png![在这里插入图片描述](https://img-blog.csdnimg.cn/8d44231841424bdc9d18f07b87e71e6f.png
上面所述场景就是典型的微前端场景,类似于后端的微服务架构,它将web应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。通常,要实现上面类似的需求,我们很容易会想到使用iframe的方式来实现。在入口框架中用iframe来显示子模块的页面,切换子模块时,iframe也跟着切换成对应子模块页面的url。

虽然iframe是比较容易实现的,但通常也会有一些问题:显示区域受限制,比如子项目中显示弹窗蒙层时,蒙层只会覆盖iframe区域,无法覆盖整个页面,内容也无法真正居中。页面浏览记录无法自动被记录,刷新页面后iframe又自动回到首页。全局上下文完全隔离,变量不共享,页面间通信比较麻烦,比如子项目与主题框架、子项目之间通信等,只能采用postMessage方式。速度较慢,每次进入子应用时都要重建整个上下文。

上面所列问题,有些可以解决,有些甚至都没法或者很难解决。总的来说,iframe是一个比较快捷的方案,但不是最好的方案,会对体验有很多限制。如果强行打各种patch,复杂度又上来了,最后可能得不偿失。

二、qiankun微前端框架

其实,已经有个基于single-spa的开源库qiankun已经帮我们解决了上面提到的问题,其有如下特征:解析子应用入口时,不是解析的js文件,二是直接解析子应用的html文件。

就算子应用更新了,其入口html文件的url始终不会变,并且完整的包含了所有的初始化资源url,所以不用再自行维护子应用的资源列表了。

子应用挂载时,会自动进行一些特殊处理,可以确保子应用所有的资源dom(包括js添加的style标签等)都集中在子应用根节点dom下。

子应用卸载时,对应的整个dom都移除了,这样也就避免了样式冲突。提供了js沙箱,子应用挂载时,会对全局window对象代理、对全局事件监听进行劫持等,确保各子应用都运行在自己的沙箱内,这样也就避免了js冲突。


总结

当然,在前端越来越庞大复杂的场景中,微前端方案也不是银弹,但确是值得探索实践的方向。

基于 qiankun 的微前端实践 首先基于作者自己的思考,给大家梳理下 qiankun 微前端的渲染流程,方便不了解微前端的同学有个大体的认识。假如你不了解微前端的话,对于这个新事物的学习和探索,一般是按照 5Ws 的学习规律来学习:本文也按照类似的方式一个具体的案例去梳理 qiankun 的核心概念。本文有一个业务系统 A,希望集成业务系统 B 的_欢迎卡片配置_功能页面。那么 who 包含 qiankun 客户端、主应用 A、微应用 B 三部分,三者协作完成了微前端的设计。... 阅读详情

相关推荐

微前端架构实践:挑战与策略

本文探讨了微前端架构在实际应用中所面临的性能和设计一致性问题,并提供了应对这些挑战的策略。通过专家经验分享,介绍了如何在不牺牲用户体验的前提下改善开发体验,并给出了构建微前端项目的具体步骤和工具推荐。

weixin_33610780的博客 407

微前端(qiankun)实践,内含超多代码示例

微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,将 Web 应用从整个的「单体应用」转变为多个小型前端应用的「聚合体」。 各个前端应用「原子化」,可以独立运行、开发、部署,从而满足业务的快速变化,以及分布式、多团队并行开发的需求。

LigaAI的博客 2105

Micro-Frontends-practice:基于qiankun的微前端实践,提供更为简单,完整的项目。reactvuedemo已完成

微前端实践 基于qiankun( ) 主要以细化qiankun为例,希望我踩过的坑大家能跳过去,节省时间〜 根据qiankun更新进度不定时修改完善 有帮助的话别忘了start( ) 目录介绍 项目总体编写了vue,react两种实现方式 根项目:main_react / main_vue 子项目:react_ / react_eject / vue / react_webpack 五个项目独立存在 请先运行子项目,再运行父项目 一,main_react 根项目create-react-app版本 安装qiankun, yarn add qiankun # or npm i qiankun

微前端应用及基于qiankun的微前端实践

微前端概念起源 微前端其实是借鉴了微服务的概念,最早是出现在2016年的ThoughtWorks Technology Radar(ThoughtWorks技术雷达) 什么是微前端 MicroFrontends 官方解释:用来构建能够让 多个团队 独立交付项目代码的 现代web app 技术,策略以及实践方法 MicroFrontends 官网:https://swearer23.github.io/micro-frontends/ 所以微前端并不是一个单纯的技术点,而是一个为了解决复杂应用,特别时便于以后

东扯葫芦西扯瓜——前端小菜鸟的博客 4790

微前端架构落地:从模块联邦到沙箱隔离的工程化实践

微前端架构通过模块联邦和沙箱隔离,解决了巨石应用在团队协作、技术栈升级和独立部署方面的痛点。但其引入的运行时开销、开发复杂度和通信成本不容忽视。落地建议:仅在团队规模超过 5 人、应用复杂度确实需要拆分时引入微前端;优先使用 Module Federation 方案,配合 Proxy 沙箱实现中等程度的隔离;建立统一的通信总线和依赖版本协调机制;对于简单应用,Monorepo + 组件化是更优的替代方案。

weixin_49475940的博客 1103

2020年你必须要会的微前端 -(实战篇)

戳蓝字"前端优选"关注我们哦!最近你有没有经常听到一个词,微前端?是不是听上去感觉非常地高大上!然而~微前端其实非常地简单,非常地容易落地,而且也非常不高大上~那么就来一...

webyouxuan的博客 3万+

技术实践微前端技术应用

微前端是一种新兴的前端架构模式,是一种类似于微服务的架构,将微服务的理念应用于浏览器端。其核心理念是将一个大而单一的前端应用拆分为多个小型独立的微应用。这些微应用各自独立,可以由不同团队开发维护,部署,组合这些微应用,行成一个聚合应用。

iOceanMind的博客 1271

微前端实践总结

微前端(Micro Frontends)是一种将大型单体前端应用拆分为多个独立模块的架构模式,旨在通过分治策略提升开发效率和可维护性。模块化:将复杂应用拆分为独立的小型子应用,每个子应用可独立开发、测试和部署。技术无关性:允许不同子应用使用不同技术栈(如React、Vue),便于团队灵活选择工具。独立性与隔离性:子应用运行时状态隔离,避免全局变量或样式污染。渐进式重构:支持逐步替换旧系统模块,降低技术升级风险。

小秀的博客 777

震撼!微前端在TMD的落地实践与突破

微前端是一个设计理念,不是一个库或者框架微前端的概念由 thoughtworks 在 2016 年提出。其核心思路是借鉴后端微服务架构思想,将一个庞大的巨石前端应用拆分为多个简单独立的前端工程。每个前端工程可以独立开发、测试、部署。最终再由一个主应用应用将所有子应用合并到一起,以一个完整的网站形式展现给用户。简单来说,微前端【一拆一合】,拆的是复杂度、合的是视图和子应用之间的通用能力!独立开发、降低代码耦合: 每个子应用由独立的前端团队开发,一般是独立仓库,这使得在代码维护、代码编译方面更加友好。

humorHan 1643

微前端架构:微前端是当下比较热门的架构模式,关于微前端的基本理念,其解决的问题,实践微前端

微前端架构:微前端是当下比较热门的架构模式,关于微前端的基本理念,其解决的问题,实践微前端

哎 你看的博客 741

无界微前端与无极低代码平台:腾讯内部微前端实践分享

在当今企业数字化转型浪潮中,如何优雅地整合新旧系统、实现技术栈的统一管理,成为众多开发团队面临的挑战。无界微前端框架作为腾讯内部微前端实践的结晶,结合无极低代码平台,为企业级应用开发提供了全新的解决方案。 ## 什么是无界微前端? 无界微前端是一款基于 **Web Components + iframe** 的极致微前端框架,具备成本低、速度快、原生隔离、功能强大等一系列核心优势。这款框架通过

gitblog_00389的博客 1262

微前端架构与实践

微前端(Micro-Frontend)是一种前端架构模式,它将前端应用分解为更小、更易于管理的部分,这些部分可以由不同的团队独立开发、测试和部署。微前端架构的灵感来源于微服务架构,旨在解决大型前端应用开发中的复杂性和团队协作问题。

exlink2012的专栏 901

qiankun 微前端_qiankun 微前端原理与实践

微前端是指存在于浏览器中的微服务,通常由许多组件组成,并使用类似于 React、Vue 和 Angular 等框架来渲染组件,每个微前端可以由不同的团队进行管理,并可以自主选择框架。每个微前端都拥有独立的 git 仓库、package.json 和构建工具配置。因此,可以拆分一些巨石应用为多个独立的模块再组合起来,应用间独立维护及上线,互不干扰。本文通过一些精简代码的方式介绍微前端框架q...

weixin_39929153的博客 1724
上一篇: 柯里化和偏函数简单实现
下一篇: 用户态系统的预渲染
666syc
博客等级 码龄9年 106粉丝 · 35原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值