携手创作,共同成长!这是我参与「掘金日新计划 · 8月更文挑战」的第6天,点击查看活动详情
前言
什么是微前端呢?其实它不是指具体哪种技术,而是一种开发思想。它将一个又大又复杂的项目,拆解成一个个小的独立的应用。使得这些小应用可以独立开发,独立运行,独立部署。在实际的工作中,微前端主要被用来在多个团队间,各自独立发布功能,最终共同构建web应用的技术手段和策略。
微前端的实现方式
传统的一些方式有:iframe,nginx路由转发,npm集成等。除此之外,还有一些优秀的框架,其中使用最多的就是qiankun
微前端的优缺点
优点:适用于大规模的web项目,更快的开发速度,支持迭代开发,具备ux和dx开发模式。
缺点:一定学习成本,稳定性和安全性需要更加关注,需要建立微前端相关的一些设施,比如监控系统,调试工具,部署平台。
qiankun
是蚂蚁金服出品,基于 single-spa 在 single-spa 的基础上封装。它主要作用于两件事情,一是加载资源,二是对资源进行隔离(资源隔离分为:js资源隔离和css资源隔离)
css隔离,确保微应用之间样式互相不干扰。
js沙箱,确保微应用之间的全局变量和事件不冲突。
js沙箱
沙箱(Sandbox)是一种用于隔离正在运行程序的安全机制,他会为程序创建一个独立的运行环境,内部程序的运行不会影响到外部程序运行。
JS Entry
在使用 single-spa 加载微应用时,我们其实加载的不是微应用本身,而是微应用导出的 js文件,即JS Entry。
qiankun采用了 HTML Entry 的方式,让用户接入微应用就像使用iframe一样简单。