首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
scala
foreach
flutter
text
audio
window
range
javascript
netty
future
web
random
java
bash
golang
blob
dockerfile
datetime
keyword
sum
python
version
input
cPlusPlus
io
main
subset
instance
metadata
match
cookie
node.js
testing
case
merge
post
php5
bitmap
const
cmd
typescript
fetch
hashtable
tree
bit
shell
hashset
search
jar
go
actionscrip
ascii
python3
split
utf-8
dagger
chat
header
int
lua
settings
filter
tags
jsp
process
config
python2
httprequest
php
include
rsa
cSharp
c语言
solr
js
substring
client
eval
httpclient
当前位置:
开发笔记
>
编程语言
> 正文
关于前端:17个可以实现微前端的方案
作者:骏马奔腾09 | 来源:互联网 | 2023-09-23 09:57
一、微前端计划思路在前端技术畛域已有如下几种成熟的实现微前端的思维:基于接口协议:子利用依照协定导出几个接口,主利用在运行过程中调用子利用导出的这
一、微前端计划思路
在前端技术畛域已有如下几种成熟的实现微前端的思维:
基于接口协议:子利用依照协定导出几个接口,主利用在运行过程中调用子利用导出的这几个接口
基于沙箱隔离:主利用创立一个隔离环境,让子利用根本不必思考本人是在什么环境下经营,依照一般的开发思路进行开发即可
基于模块协定:主利用把子利用当作一个模块,和模块的应用形式无异
二、微前端实现的几种形式
在前端技术畛域已有如下几种形式落地施行:
路由散发:开发成本低,保护成本低,可行性高,不限技术栈,实现简略
iFrame:开发成本低,保护成本低,可行性高,不限技术栈,实现简略
利用微服务化:开发成本高,保护成本低,可行性中等,不限技术栈,实现难
微件化:开发成本中等,保护老本中等,可行性低,有技术栈限度,实现难
微利用化:开发成本中等,保护老本中等,可行性高,有技术栈限度,实现较难
纯 Web Components:开发成本高,保护成本低,可行性高,不限技术栈,实现简略
联合 Web Components:开发成本高,保护成本低,可行性高,不限技术栈,实现简略
三、17个实现微前端的框架简介
1. Single-Spa:最早的前端微服务 Javascript 框架,兼容多种前端技术栈
基于Single-Spa,阿里系开源微前端框架,
是一个将多个单页面利用聚合为一个整体利用的 Javascript 微前端框架,
在同一页面上应用多个前端框架,而不必刷新页面,
不限技术栈,
反对独立部署每一个单页面利用,
新性能应用新框架,旧的单页利用不必重写能够共存,
无效改善初始加载工夫,提早加载代码,
文档地址:https://zh-hans.single-spa.js…
2. Qiankun:基于Single-Spa,阿里系开源微前端框架
阿里飞冰微前端框架,兼容多种前端技术栈,
基于 single-spa 封装,提供了更加开箱即用的 API,
不限技术栈,
HTML Entry 接入形式,让你接入微利用像应用 iframe 一样简略,
款式隔离,确保微利用之间款式相互不烦扰,
JS 沙箱,确保微利用之间全局变量/事件不抵触,
资源预加载,在浏览器闲暇工夫预加载未关上的微利用资源,减速微利用关上速度,
umi 插件,提供了 @umijs/plugin-qiankun 供 umi 利用一键切换成微前端架构零碎,
文档地址:https://qiankun.umijs.org/zh/…
3. Icestark:阿里飞冰微前端框架
后盾比拟扩散,体验差异大,因为要频繁跳转导致操作效率低,心愿能对立收口的一个零碎内,
单页面利用十分宏大,多人合作老本高,开发/构建工夫长,依赖降级回归老本高,
不限技术栈,
零碎有二方/三方接入的需要,
文档地址:https://micro-frontends.ice.w…
4. Alibaba Cloud Alfa 是在阿里云控制台体系中孵化的微前端计划,定位是面向企业级的微前端体系化解决方案
不限技术栈,
开箱即用,无代码侵入,
欠缺的微前端体系撑持,
残缺的前端容器沙箱,
多实例兼容,
文档地址:https://alfajs.io/
5. Module Federation:是 Zack Jackson 创造的 Javascript 架构,Zack Jackson 随后提出为其创立一个 Webpack 插件。
是webpack给出的微前端计划,
使 Javascript 利用能够动静运行另一个 Javascript 利用中的代码,同时能够共享依赖,
依赖主动治理,能够共享 Host 中的依赖,版本不满足要求时主动 fallback 到 Remote 中依赖,
共享模块粒度自在掌控,小到一个独自组件,大到一个残缺利用。既实现了组件级别的复用,又实现了微服务的基本功能,
共享模块非常灵活,模块中所有组件都能够通过异步加载调用,
文档地址:https://webpack.js.org/concep…
6. FrintJS:用于构建可伸缩和响应式应用程序的模块化 Javascript 框架
加载来自不同 bundlers 的应用程序,为应用程序提供构造,并解决诸如路由、依赖关系等问题,
通过附加的软件包反对 RN 和 Vue,但文档和测试大多数是针对 React 的,
文档地址:https://frint.js.org/
7. Bit:将独立的组件构建、集成和组合到一起和治理前端
具备传统单体式前端的安全性和健壮性,
介接入形式简略、可伸缩性强,
通过 简略的解耦代码库、自治团队、小型定义良好的 API、独立的公布管道 和 继续增量降级,加强工作流程,
文档地址:https://bit.dev/docs/quick-start
8. PuzzleJS:用于可扩大和疾速建站的微前端框架
SEO 敌对,在服务端进行筹备和渲染,
当片段所需的 api 呈现故障时,PuzzleJs 可保障其余页面片段仍失常工作,
文档地址:https://github.com/puzzle-js/…
9. Mooa:基于Angular的微前端服务框架
兼容多种前端技术栈,
构建插件化的 Web 开发平台,满足业务疾速变动及分布式多团队并行开发的需要,
构建服务化的中间件,搭建高可用及高复用的前端微服务平台,
反对前端的独立交付及部署,
文档地址:https://github.com/phodal/mooa
10. ngx-planet:一个弱小、牢靠、欠缺、齐全可用于生产环境的 Angular 微前端库
只反对 Angular 框架,不反对其余 MV* 前端框架,
反对同时渲染多个子利用,
反对并存(coexist)和默认(default)两种模式, 默认模式切换其余子利用销毁以后子利用,并存模式不会销毁,而是暗藏,
反对子利用的预加载,
反对款式隔离,
内置多个利用之间的通信,
反对跨利用组件的渲染,
欠缺的示例,蕴含路由配置、懒加载等所有性能,
文档地址:https://github.com/worktile/n…
11. Ara Framework:Ara 是一个应用Airbnb 的 Hypernova轻松开发和集成微前端的框架
技术栈自在,
架构灵便,
文档地址:https://ara-framework.github….
12. Micro-app:是京东批发推出的基于类WebComponent进行渲染,从组件化的思维实现的微前端技术
应用简略,接入微前端成本低,
零依赖,
兼容所有框架(不须要提供脚手架工具),
提供了JS沙箱、款式隔离、元素隔离、预加载、资源地址补全、插件零碎、数据通信等一系列欠缺的性能,
https://zeroing.jd.com/
13. Piral:基于 React 的微前端,指标是让你能够应用微前端轻松构建门户应用程序
渐进迁徙,
共享库,
共享现有布局和程序框架,
文档地址:https://github.com/smapiot/piral
14. OpenComponent:指标是“前端世界中的无服务器”,旨在成为一个一站式微前端框架,从而使其成为一个丰盛而简单的零碎,其中包含从组件解决到注册表、再到模板、甚至包含 CLI 工具
同构小单元代码,
组件化渲染利用页面,
文档地址:https://github.com/opencompon…
15. Liugi:是一个微前端 Javascript 框架,你能够应用它创立由本地和分布式视图驱动的治理用户界面
容许 Web 应用程序与应用程序蕴含的微前端进行通信,
能够配置路由、导航、受权和 UX 元素等设置,
文档地址:https://github.com/SAP/luigi
16. Mosaic:是一组服务,库以及标准定义了其组件之间如何彼此交互,用来反对大型网站的微服务式架构
应用了片段(Fragments)的机制,这些片段由独自的服务程序提供服务,并依据模板定义在运行时组合在一起,
由一堆软件包组成,这些软件包解决不同的问题,例如路由、布局、模板存储、甚至展现 UI,
文档地址:https://www.mosaic9.org/
17. SystemJS:不是微前端框架,但它的确为跨浏览器的独立模块治理提供了解决方案
使咱们无需依赖本机浏览器反对,即可应用与 JS 模块相干的不同性能,诸如动静导入和导入映射等,并且所有这些都具备靠近本机的性能,
提供便捷的形式拜访其“模块注册表”,以便你随时理解浏览器中哪些模块是可用的,
文档地址:https://github.com/systemjs/s…
四、抉择微前端计划的时候须要思考是否解决好以下10个问题
微利用的注册、异步加载和生命周期治理;
微利用之间、主从之间的音讯机制;
微利用之间的平安隔离措施;
微利用的框架无关、版本无关;
微利用之间、主从之间的公共依赖的库、业务逻辑(utils)以及版本怎么治理;
微利用独立调试、和主利用联调的形式,疾速定位报错(发射问题);
微利用的公布流程;
微利用打包优化问题;
微利用专有云场景的出包计划;
渐进式降级:用微利用计划平滑重构老我的项目。
编程
php
iframe
微服务
web
java
ip
https
js
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
io
QUIC协议:快速UDP互联网连接
QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ...
[详细]
蜡笔小新 2024-12-28 12:33:18
main
Java 中的 BigDecimal pow()方法,示例
Java 中的 BigDecimal pow()方法,示例 ...
[详细]
蜡笔小新 2024-12-27 20:54:03
range
使用Numpy实现无外部库依赖的双线性插值图像缩放
本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ...
[详细]
蜡笔小新 2024-12-28 13:15:40
io
深入解析 BERT 中的 Transformer Attention 机制
本文详细介绍了 BERT 模型中 Transformer 的 Attention 机制,包括其原理、实现代码以及在自然语言处理中的应用。通过结合多个权威资源,帮助读者全面理解这一关键技术。 ...
[详细]
蜡笔小新 2024-12-28 12:57:56
io
优化ListView性能
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
io
PyCharm下载与安装指南
本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ...
[详细]
蜡笔小新 2024-12-28 09:42:41
io
Windows 10 系统中禁用 F1 至 F12 功能键的方法
在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ...
[详细]
蜡笔小新 2024-12-28 09:13:44
instance
Java 中 Writer flush()方法,示例
Java 中 Writer flush()方法,示例 ...
[详细]
蜡笔小新 2024-12-28 06:41:52
io
技术分享:从动态网站提取站点密钥的解决方案
本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ...
[详细]
蜡笔小新 2024-12-28 04:11:47
io
CSS 布局:液态三栏混合宽度布局
本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ...
[详细]
蜡笔小新 2024-12-28 02:40:28
io
如何使用JavaScript或jQuery检测文本框焦点状态和鼠标悬停事件
本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ...
[详细]
蜡笔小新 2024-12-27 21:33:33
io
python的交互模式怎么输出名文汉字[python常见问题]
在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ...
[详细]
蜡笔小新 2024-12-27 21:32:05
java
汇编语言高级特性总结
本文总结了汇编语言中第五至第八章的关键知识点,涵盖间接寻址、指令格式、安全编程空间、逻辑运算指令及数据重复定义等内容。通过详细解析这些内容,帮助读者更好地理解和应用汇编语言的高级特性。 ...
[详细]
蜡笔小新 2024-12-27 19:52:28
instance
新浪笔试题
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
main
网络链路质量监控:Smokeping部署与配置
本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ...
[详细]
蜡笔小新 2024-12-27 19:31:05
骏马奔腾09
这个家伙很懒,什么也没留下!
Tags | 热门标签
scala
foreach
flutter
text
audio
window
range
javascript
netty
future
web
random
java
bash
golang
blob
dockerfile
datetime
keyword
sum
python
version
input
cPlusPlus
io
main
subset
instance
metadata
match
RankList | 热门文章
1
Proxy与Object.defineProperty优劣对比及其应用场景
2
如何实现织梦DedeCms全站伪静态
3
Nginx使用AWStats日志分析的步骤及注意事项
4
SQL查询分组后每组行数的统计方法
5
未来职业生涯中最适合的编程语言选择问题
6
获取当前模块所在路径的GetModuleFileName函数用法详解
7
阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
8
cmd报错:Error: could not open `C:\Program Files\Java\jre1.8.0_121\lib\amd64\jvm.cfg' 的解决办法
9
PHP玩家基地系统毕业设计(附源码、运行环境)的用户登录界面、游戏管理和玩家作品管理
10
vue使用
11
JavaScript疑难杂症系列相称性推断的知识点详解
12
基于PgpoolII的PostgreSQL集群安装与配置教程
13
linux查看目录权限命令,linux修改文件目录权限
14
Skywalking系列博客1安装单机版 Skywalking的快速安装方法
15
每天收获一点点Hadoop概述
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有