您当前的位置:首页 > 互联网教程

探索微前端的三种技术方案

发布时间:2025-05-13 13:15:27    发布人:远客网络

探索微前端的三种技术方案

一、探索微前端的三种技术方案

什么是微前端

首先我们应该先知道什么是微服务

首先我们应该先知道什么是微服务

微服务是面向服务架构(SOA)的一种变体,把应用程序设计成一系列松耦合的细粒度服务,并通过轻量级的通信协议组织起来,具体地,将应用构建成一组小型服务。这些服务都能够独立部署、独立扩展,每个服务都具有稳固的模块边界,甚至允许使用不同的编程语言来编写不同服务,也可以由不同的团队来管理。

那么以微服务来类比,微前端也可以采用这种架构思想,将一个前端应用拆解成多个微应用,可独立开发、测试、部署,呈现给用户的是一个产品,内部原理实则是多个应用的集成或者内聚。

每个团队可以根据自己的技术栈来进行开发,各团队之间互不干扰,节省团队之间的技术沟通成本

即使各团队使用相同技术栈,彼此也不应该共享变量和状态

利用前缀的方式来区分不同项目之间CSS、BrowserAPI、WebEvent、Cookies或LocalStorage之间的冲突

使用浏览器事件进行通信,而不是构建一个全局的PubSub系统。如果你真的需要构建一个跨团队的API,尽量让它简单

即使JavaScript失败或尚未执行,Web应用程序的功能仍应有效。可以使用通用渲染和渐进增强来提高用户的感知性能

灵活性:技术栈无关,每个微应用可以是不同的技术栈

渐进性:增量升级,便于项目扩展和重构

独立性:每个微应用之间状态隔离,运行时状态不共享

敏捷性:独立开发、独立部署,部署完之后主框架自动完成同步更新

直接在需要插入的地方,使用iframe将所需要呈现的业务页面url插入即可,src的路径可以是当前项目也可以是其他项目的。这种方式在PC端的效果还算中肯,移动端呈现的效果不佳。iframe的优点是简单易用,没有什么学习成本,缺点也显而易见,seo不友好、适配的空间有局限性、可能发生多次请求产生性能问题。

以vue-cli搭建的项目举例,在multi-page模式下构建应用,每个page应该有一个对应的JavaScript入口文件,我们把每一个需要松耦合的项目当成一个子项目即新创建一个page,并且新增一个相应的入口文件page.main.js,在vue.config.js文件下做如下配置:

如上面代码所示,vue项目中配置了两个page,index和demo,对应的有两个main.js入口文件,当然public里也有对应的两个html文件,如图:

使用multi-page的方式实现微前端的思路是,将一个vue项目分化成若干不同的子项目,每个项目作为一个单页应用

这种方案也没有什么学习成本,只需要根据实际情况创建不同的page

在实际开发中,总体的架构方面是固定的,各个团队在不同的page下独立开发不同的模块,互不影响,团队之间唯一的交集可能是在修改vue.config.js文件的相关配置产生

以上是示例效果,存在两个page页面home和demo,从home跳转到demo,也可以从demo跳转回home。根据自己的场景,可以使用window.location.href或者window.location.replace在子应用间做跳转。

qiankun是蚂蚁金服技术团队基于single-spa开发的微前端框架,整体比较方便,提供基座应用,只需将各个微应用注册在基座后,便可以实现微前端架构,基座应用的运行不影响微应用,可以独立开发部署。

在主应用(基座)中注册微应用并启动:

微应用不需要额外安装任何其他依赖即可接入qiankun主应用,但是要在微应用中做以下两项操作:

微应用需要在自己的入口js(如main.js)(通常就是你配置的webpack的entryjs)导出bootstrap、mount、unmount三个生命周期钩子,以供主应用在适当的时机调用

以上是示例效果,两个微应用存在于主应用中,主应用就像是一个宿主环境的浏览器,每个微应用内部的切换就像iframe一样自然

#Micro-frontendArchitecturesonAWS

二、微前端优缺点及应用场景

1、微前端作为一种新兴的技术方案,其优缺点以及适用场景值得深入探讨。首先,每种技术都有其适用性和局限性,关键在于是否能带来更大的收益。微前端与规模化应用(单体项目)和模块化项目(如Nginx分发)相比,其优点在于对现有项目的改动相对较小,适合使用预集成框架。然而,性能上,规模化应用由于加载和执行次数少,表现最优,微前端由于需要加载子应用和缓存机制,略逊一筹,但体验接近。移动端应用中,微前端通常用于管理端,而工具类项目如贷款办理系统可能会是个例外。

2、对于复杂度,微前端、模块化和规模化项目都相对简单。在性能与体验上,模块化项目由于每次跳转都需要重新加载,表现不佳。对于移动端门户项目,微前端配合同构功能如Isomorphic Layout Composer,可以满足基本性能需求。然而,如果在App内部使用微前端,预加载可以缓解问题。在实际使用中,如遇到系统bug,开发者可以及时反馈给官方,共同改进。

3、在实际应用中,微前端在管理端的实践较为常见,移动端则相对较少,但特定工具类项目可以突破这一限制。总的来说,微前端的选择需要根据项目类型、重要性、性能需求和维护成本来综合评估。下一章,我们将深入探讨微前端在不同场景的具体实践案例。

三、WEB前端开发 是什么

现在前端开发是一个很火很热门的行业,小编在这里为大家详细解释一下这个高大上的行业!

在国内大学课程里面,几乎没有前端开发这门课程,无非就是一些网页设计之类的课程,但那些课程无论是老师讲还是学生听,都是敷衍了事,这个我深有体会,我相信大家一定也有同感!所以,目前前端开发主要是通过自学,和参加正规的培训!对于培训来说,一般会分为初级、中级、高级等级别,因为凭我们自己很难掌握这些技能。但是自学是很困难的,毕竟是一个人自己摸索,网上看上去有很多视频可以学习,但是那些视频很多都是过时的,像js和h5这些想要自学根本学不会,更何况以后深入学习还要掌握框架构造!很多小伙伴就根本找不到学习的方向,最后白白浪费了自己的时间和精力!所以对于有条件的小伙伴,个人推荐最好是系统的学习一下!

那么我们应该怎么学习前端开发这门技术呢?现在很多小伙伴喜欢在互联网上找视频资料学习网页制作,但是光看视频你是不可能学会网页制作的,没有人指导你,而且很多视频已经过时了,并没有什么用!如果你真的想学习网页制作这门技术,你可以来这个裙,前面是6 5 7,中间是1三七,最后是九 0六!在这里有最新的HTML课程免费学习也有很多人指导你进步,不需要你付出什么只要你有一颗学习的心就可以了。

传统web从业者为什么必须学习前端开发技能?——学习前端开发是晋升和加薪的捷径。传统web从业者,只要精通html+css,简单的JS效果,切切图,写写网站等就可以了,而如今的前端开发不再只是一个简单的网站,现在越来越多的云计算应用程序,比如webQQ接近我们经常使用的QQ的功能。以前用java、J2EE、.Net、ObjectC等高级语言开发的应用程序也越来越走向web化、云端化。BS架构应用程序已逐渐成为主流。时代变了,用最犀利的前端技术武装我们的大脑的时代已经来临!

1、想要跟上潮流,想要掌握最新技术,做高精尖人才升职加薪,必须学习前端开发最新技能,毕竟做前端的就得跟上时代的潮流,如果有小伙伴想要学习前端开发,个人认为潭州学院还是蛮不错的!相比于线下的培训班,潭州无论是学费还是学习时间,都远远比线下的培训班更加实惠,而且只要有电脑,有网络就可以进行学习!

2、前端开发的就业方向及薪资情况。

记得有人说过,未来不再有互联网公司,因为未来所有的企业都会有互联网部门,而互联网世界离不开前端开发,像淘宝、阿里巴巴、支付宝、腾讯、京东、新浪微博等等大型的基于互联网的企业与产品,都需要优秀的前端高级开发人才。

不仅仅是互联网企业,随着O2O模式的越来越普及,传统企业越来越互联网化、云端化,前端开发人才需求越来越多,人才缺口高达上百万。

招聘网站上现在的前端开发工程师的平均薪酬已经达到了12926元,需求巨大,前景广阔,薪资还高。

如果你已经有了传统web基础(css+div),那么是时候提升你的前端开发技能了…

如果你没有接触过web前端开发,那么如果你经常上网,冲浪,希望要了解互联网世界背后的故事,可以先从web前端开始了解,因为这是开启互联网世界大门的钥匙…

web前端课程的核心特点是:我们不仅仅要学会制作一个网页,一个特效。

更多的是我们要用web前端开发传统应用程序,我们做pc端,移动端,各种响应式,web游戏,web企业管理系统,web移动程序,开发一个大规模项目,html5游戏,甚至用js开发传统高级语言才能做的数据库交互,不用后台语言,就靠我们js做后台,流行大趋势……

未来需要什么,我们就需要学什么:

模块2:web移动开发–html5、css3、

模块3:html5游戏—html5、canvas;

模块4:用js去做传统java、.NET、PHP才能做的数据库操作,服务器编程。—ajax、node.js;

模块5:大型BS、云计算、项目开发(比如淘宝,京东)–面向对象、设计模式、大型项目分层架构思想(比如MVC,MVVM)、js框架、web前端架构、js组件;

两大基础:js基础(蹲马步,基础中的基础–函数,事件,语句等)、面向对象(基础)。内外双修:

【内】掌握面向对象编程思维,模块化编程思维,大型项目分层编程思维,大型项目团队如何合作;

【外】学习一些前辈总结出来的最佳编程实践:设计模式,比如能够保证全局唯一的单例模式,创造万物的工厂模式,模拟现实中介的中介模式,代理模式,以及所有业界都在谈,都在吹,都在用的依赖倒置,依赖注入,面向切面编程等。

结语:十年前,随着iPhone的兴起,iOS开发火爆中国。当年的行动者,如今已经成为百万富翁!今天,随着HTML5等WEB前端技术兴起,前端开发的大潮已经袭来!赶快行动,让青春不留遗憾,占领行业制高点,主动权就再你的手中!