返回

用 iframe 实现微前端架构实战

前端







最近看到了好几篇与微前端相关的文章,对于微前端的架构基本都提到了 iframe 方式,但最终也没看到那篇文章最后选择了 iframe 架构。既然如此,那我就来试试看用 iframe 实现微前端怎么样。项目可以分为两部分,一部分是统一的登陆注册入口,一分部是主要的管理内容区。

## 架构设计

iframe 微前端架构的整体设计如下:

* **主应用** :负责加载和管理微前端应用。
* **微前端应用** :独立的模块,可以独立开发、部署和维护。
* **通信机制** :用于微前端应用之间的数据通信。

## 实现

### 主应用

主应用负责加载和管理微前端应用。主应用可以是一个简单的 HTML 页面,也可以是一个复杂的单页面应用。

```html
<!DOCTYPE html>
<html>
  <head>
    
  </head>
  <body>
    <div id="app"></div>
    <script src="main.js"></script>
  </body>
</html>
// main.js
import { createMicroFrontendEngine } from 'micro-frontend-engine';

const engine = createMicroFrontendEngine({
  container: '#app',
});

engine.registerApp('app1', {
  url: 'http://localhost:3001',
});

engine.registerApp('app2', {
  url: 'http://localhost:3002',
});

engine.start();

微前端应用

微前端应用是独立的模块,可以独立开发、部署和维护。微前端应用可以是一个简单的 HTML 页面,也可以是一个复杂的单页面应用。

<!DOCTYPE html>
<html>
  <head>
    
  </head>
  <body>
    <h1>微前端应用</h1>
    <script src="main.js"></script>
  </body>
</html>
// main.js
import { createMicroFrontend } from 'micro-frontend';

const microFrontend = createMicroFrontend({
  url: 'http://localhost:3001',
});

microFrontend.mount();

通信机制

微前端应用之间的数据通信可以通过以下方式实现:

  • 事件通信 :微前端应用之间可以使用事件通信进行数据交换。
  • 本地存储 :微前端应用之间可以使用本地存储进行数据交换。
  • Cookie :微前端应用之间可以使用 Cookie 进行数据交换。

优缺点

iframe 微前端架构具有以下优点:

  • 简单易用 :iframe 微前端架构非常简单易用,即使是前端开发新手也可以轻松上手。
  • 隔离性强 :iframe 微前端架构中的微前端应用是相互隔离的,不会互相影响。
  • 安全性高 :iframe 微前端架构中的微前端应用是独立的,不会互相访问对方的资源。

iframe 微前端架构也具有一些缺点:

  • 性能开销大 :iframe 微前端架构中的微前端应用是独立的,每次加载一个微前端应用都需要重新加载资源,这会增加性能开销。
  • SEO 不友好 :iframe 微前端架构中的微前端应用是独立的,每个微前端应用都有自己的 URL,这不利于 SEO。

总结

iframe 微前端架构是一种简单的、易用的、隔离性强、安全性高的微前端架构。但是,iframe 微前端架构也存在性能开销大、SEO 不友好的缺点。总体来说,iframe 微前端架构是一种适合于小型项目和非 SEO 需求的微前端架构。