“微前端”一词最早于2016年底在ThoughtWorks Technology Radar中提出。它将微服务的概念扩展到了前端世界。当前的趋势是构建一个功能强大且功能强大的浏览器应用程序(也称为单页应用程序),该应用程序位于微服务架构之上。随着时间的流逝,通常由一个单独的团队开发的前端层会不断增长,并且变得更加难以维护。这就是我们所谓的Frontfront Monolith。

简而言之,微前端就是将大而可怕的东西切成更小、更易于管理的部分,然后明确它们之间的依赖关系。我们的技术选择、代码库、团队和发布流程都应该能够独立运行和演变,而不会过度协调。

目的显而易见,和后端微服务、移动端组件化是一样的。

解耦合,不同团队开发不同模块 增量更新 独立部署 提高复用

实现微前端的方法

鉴于上述定义相当松散,有许多方法可以合理地称为微前端。在本节中,我们将展示一些示例,并讨论它们的权衡。所有方法都出现了一个相当自然的架构——通常应用程序中的每个页面都有一个微前端,并且有一个容器应用程序,它:

渲染常见的页面元素,如页眉和页脚

解决身份验证和导航等跨领域问题

将各种微前端聚合到页面上,并告诉每个微前端何时何地呈现自己

一个网页,里面有围绕不同部分绘制的盒子。一个盒子包裹整个页面,将其标记为“容器应用程序”。另一个框包装了主要内容(但不包含全局页面标题和导航),将其标记为“浏览微前端”

1. 服务端模板集成

首先我们写一个index.html 文件,留下中间动态片段由服务端去渲染。

Feed me

 Feed me

需要借助Nginx去配置$PAGE变量,在请求的时候重新匹配url

server {

listen 8080;

server_name localhost;

root /usr/share/nginx/html;

index index.html;

ssi on;

Redirect / to /browse

rewrite ^/$ http://localhost:8080/browse redirect;

Decide which HTML fragment to insert based on the URL

location /browse {

set $PAGE ‘browse’;

}

location /order {

set $PAGE ‘order’;

}

location /profile {

set $PAGE ‘profile’

}

All locations should render through index.html

error_page 404 /index.html;

}

服务端渲染微服务通过后端分割业务来实现,也是可以分割代码的,针对于ssr模式开发而来。

2. 构建时集成

通过将不同业务进行打包,然后通过一个主应用将不同业务集合起来,类似于下面的package.json:

{

“name”: “@feed-me/container”,

“version”: “1.0.0”,

“description”: “A food delivery web app”,

“dependencies”: {

“@feed-me/browse-restaurants”: “^1.2.3”,

“@feed-me/order-food”: “^4.5.6”,

“@feed-me/user-profile”: “^7.8.9”

}

}

这种虽然实现了分治,不同团队开发不同部分,但是更新依赖过于麻烦,不能增量打包发版。

3. 运行时集成

(1) Iframe

通过iframe 来动态加载,老生常谈,不多赘述,看如下代码:

Feed me!

Welcome to Feed me!

(2)通过JavaScript进行运行时集成

这个方法可能是最灵活的方法,也是我们看到团队最常用的方法。每个微前端都使用

Feed me!

Welcome to Feed me!

下面说到的qinkun、icestark 等微前端框架基本都是基于这个模式实现,原理如此。

(3)通过 web Components进行运行时集成

前提是web Components已经完善成熟,个人感觉这个应该可以试验玩一下,不太懂也不多说。 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。

分享一些简单的前端面试题以及学习路线给大家,狂戳这里即可获取

点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。

分享一些简单的前端面试题以及学习路线给大家,狂戳这里即可获取

[外链图片转存中…(img-4j11njdj-1713270431868)]

推荐文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。