对于 Web 应用来说,前端越来越大,后端越来越不重要。现代 Web 应用程序 80%-90% 的代码为前端代码,后端代码非常少。可以想象,现在大多数新的 web 应用程序都面临着类似的情况。
Web 应用程序也会随着时间而变化,开发技术和框架也是如此。这需要支持允许不同的前端框架共存,例如在 Vue2 中构建的旧模块需要与 React 或者 Vue3 中构建的新模块集成。
对大型前端应用程序采用单一方法将变得笨重,需要有一种方法将其分解为可以独立运行的较小模块。
例如:
apps.devpoint.cn/micro
:使用静态 HTML 构建的入口页面apps.devpoint.cn/settings
:使用 vue2 构建的旧模块apps.devpoint.cn/dashboard
:使用 vue3 构建的新模块接下来需要做一下几件事:
事实证明,很多公司在使用相同的方法,常用术语叫“微前端(Micro frontends)”。Micro Frontends 一词于 2016 年底首次出现在 ThoughtWorks Technology Radar 中,将微服务的概念扩展到前端领域。在微服务框架里面可以构建一个功能丰富且功能强大的浏览器应用程序,即单页应用程序,使其位于微服务架构之上。随着时间的推移,前端面临不断增长的需求和难以维护代码,这就是常说的前端单体架构。
微前端背后的思路是将网站或 Web 应用程序视为由独立团队开发拥有的功能组合。每个团队都有自己关心和专攻的不同业务或任务领域。团队是跨职能的,从数据库到用户界面、端到端地开发其功能。
以下是实现微前端的几种常见的方法,但不限于以下方案:
npm/bower
组件实现集成。iframe
中使用库和 Window.postMessage
API 进行协调。iframe
数据状态共享由其父窗口公开的 API。领取专属 10元无门槛券
私享最新 技术干货