📦 微前端新手入门:micro-app 实践教程

本文带你了解微前端的基本概念、micro-app 框架的特性、使用场景及入门实战,适合对微前端感兴趣的前端开发者快速上手。


📖 什么是微前端?

微前端(Micro Frontends)是指将一个大型前端应用拆分成多个独立、松耦合的小型子应用,每个子应用可以独立开发、独立部署,最终通过主应用统一整合展示。

📌 微前端的优势:

  • 技术栈无关:子应用可以使用不同的技术栈(Vue、React、Angular、甚至老旧框架 Avalon)
  • 独立开发、独立部署:子应用可以单独开发、上线、回滚
  • 团队解耦:多个团队可同时开发不同子应用,互不干扰
  • 渐进式改造:适合老项目平滑升级

📌 micro-app 是什么?

micro-app 是一款轻量级、性能优秀的微前端框架,基于 Web Components 实现子应用的运行时隔离,支持 多技术栈共存,内置沙箱,配置简单,适合 Vue3 / React / Vite 场景。


🎯 micro-app 核心特性

特性 说明
沙箱隔离 子应用样式、JS、路由相互隔离,不影响主应用
技术栈无关 子应用可用 Vue、React、Angular、jQuery、原生 HTML 等
独立运行 子应用可独立运行,也可接入主应用
动态加载 子应用按需加载,按路由或页面动态加载
简单易用 配置简单,API 简洁

📦 项目环境搭建

📁 目录结构示例:

micro-frontends/
├── main-app/        # 主应用
├── sub-vue3/        # 子应用 vue3
├── sub-react/       # 子应用 react
└── sub-html/        # 子应用原生 html

📌 安装主应用

1️⃣ 安装 micro-app

npm install micro-app --save

2️⃣ 主应用引入 micro-app

以 Vue3 + Vite 为例:

import { createApp } from 'vue'
import App from './App.vue'
import microApp from '@micro-zoe/micro-app'

const app = createApp(App)
app.use(microApp)
app.mount('#app')

📌 子应用接入

1️⃣ 子应用项目开发

子应用正常开发,无需特殊配置。

2️⃣ 子应用入口文件(如:index.html

需要保证子应用入口能被主应用 iframe / sandbox 加载,例如:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Sub Vue3 App</title>
</head>
<body>
  <div id="app"></div>
  <script type="module" src="/src/main.js"></script>
</body>
</html>

📌 主应用挂载子应用

方式一:HTML 中直接写 micro-app 标签

<micro-app 
  name="vue3-app" 
  url="http://localhost:8081/" 
  baseroute="/vue3/">
</micro-app>

方式二:Vue3 中动态挂载

<template>
  <micro-app 
    name="vue3-app" 
    url="http://localhost:8081/" 
    baseroute="/vue3/">
  </micro-app>
</template>

⚙️ 配置说明

属性名 说明
name 子应用名称,唯一标识
url 子应用入口 URL
baseroute 子应用路由前缀(可选)
keep-alive 是否保活子应用(可选,默认 false)

📊 子应用资源隔离原理

  • micro-app 基于 Web Components 自定义元素
  • 样式隔离:通过 Shadow DOM 或动态样式前缀处理
  • JS 沙箱:通过 Proxy + iframe 沙箱模式拦截子应用全局变量和 window 操作

⚠️ 常见坑位与避坑技巧

  • 子应用静态资源路径问题:确保子应用打包配置 publicPath 设为相对路径或当前地址
  • 子应用路由冲突:vue-router 需设置 createWebHistory(baseroute),保证主子应用路由互不影响
  • 跨域请求问题:子应用 axios 请求接口需带上 withCredentials,主应用接口配置 CORS
  • 样式污染:注意子应用全局样式,必要时增加 scoped 或 CSS Module

📦 完整 demo 推荐

👉 官方仓库:micro-app examples


📚 总结

micro-app 是一款非常适合中小团队、Vue3 / React / Vite 项目落地微前端的方案,具有:

  • 上手简单
  • 轻量高性能
  • 灵活易扩展
  • 技术栈兼容好

如果你的项目正处在旧项目渐进式改造或多团队协同开发场景,不妨试试 micro-app 👌。


📮 如果觉得本文对你有帮助,欢迎点赞、收藏、关注!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐