假设面试官问你有关“微前端”的问题,你能答多少...

一. ✍🏻 前言

前端项目模块增多的情况,如果你是前端项目负责人,手下好多项目好多系统,然后你要对这些系统进行整合,有老的系统,有新的系统,有之前vue2不想重构成vue3的系统,有angular,有react等等...公司让你进行一个整合,那么微前端是个选择。
这次我们来聊聊微前端

二. 💡 what 是什么

📢 问:什么是微前端❓

📢 答:"微前端"(micro-frontends)是多个前端应用聚合的一个应用的架构体系 的统称(如果后面这些都记不住,记住前面这句话,理解它就行了)。每个小的应用都可以独立运行独立开发独立部署上线

三. 💡 why 为什么

📢 问:为什么要有微前端❓为什么要有这个东西出现❓

📢 答:微前端出现的目的,是为了将前端应用拆分为更小的、可独立开发和部署的模块每个模块都可以由不同的团队进行开发和维护

👆 前面前言部分也说了整合多个模块的问题,不单单是为了解决多个模块整合在一起多团队不同成员开发的问题,还可以解决遗留系统的迁移的这么一个问题,对聚合前端项目,不受限于技术选型,提高开发的效率。

最最重要的是,每个模块可以独立部署上线,互不干扰。

四. 💡 how 怎么做

📢 问:微前端怎么做?怎么动手开始?公司有这个微前端项目的需求要我搭建,怎么开始?方法是什么?如何实施?

📢 答:现有框架->

  • 蚂蚁金服搞得那一套微前端(乾坤qiankun
  • 腾讯开源的基于webComponents和iframe的微前端框架wujie无界
  • JavaScript微前端框架,一个将多个单页面应用聚合为一个整体应用 single-spa
  • 京东零售做的微前端框架,基于webcompoenent渲染,从组建思维实现微前端的 micro-app

qiankun

📦 安装

js 复制代码
yarn add qiankun / npm install qiankun -S

🔌 使用

examples/main/index.js

javascript 复制代码
import { registerMircroApps, start } from 'qiankun';

// 主应用可以使用任意的技术栈,比如vue|react|angular

// 注册子应用

registerMircroApps([
    {
        name: 'react',
        entry: '//localhost:7100',
        container: '#subapp-viewport',
        activeRule: '/react'
    },
    {
        name: 'vue',
        entryL '//localhost:7101',
        container: '#subapp-viewport',
        activeRule: '/vue'
    },
    //...等等
])

🎯 效果

wujie

📦 安装

js 复制代码
yarn add wujie / npm install wujie -S

🔌 使用

php 复制代码
import { startApp } from 'wujie';

startApp({ 
    name: '唯一id',
    url: '子应用路径',
    el: '容器',
    sync: true
})

🎯 效果

...


五. 🎯 技术方案

实现微前端的重要思想就是将应用进行拆解和整合,通常是一个父应用加上一些子应用。要么,使用类似nginx配置不同应用的转发(nginx路由转发),要么就是iframe将多个应用整合到一起(iframe嵌套)。

技术方案 描述
组合式应用路由分发 每个子应用独立构建和部署,运行时由父应用来进行路由管理,应用加载,启动,卸载,以及通信机制。
web components 每个子应用需要采用纯web components技术编写组件,是一套全新的开发模式。
iframe嵌套 父应用单独是一个页面,每个子应用嵌套一个iframe,父子通信可采用postMessagecontentWindow方式。
nginx路由转发(运维层面) nginx配置反向代理,实现不同路径,映射到不同应用。(1)www.example.com/app1 -> app1;(2) www.example.com/app2 -> app2。

nginx配置示例:

☎️ 希望对大家有所帮助,如有错误,望不吝赐教,欢迎评论区留言互相学习。感谢阅读,祝您开发有乐趣。

相关推荐
崔庆才丨静觅5 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60615 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅6 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅6 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅6 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment6 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅7 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊7 小时前
jwt介绍
前端
爱敲代码的小鱼7 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax