大家好,我是CodeQi!
在2024年,前端开发的世界变得越来越分散化。
作为一名开发者,我深刻感受到微前端架构在大型项目中的重要性和便利性。
微前端技术不仅解决了单体前端应用的复杂性,还提高了开发团队的独立性和灵活性。
今天,我将和大家分享2024年最受欢迎的7个微前端框架,并详细讲解每个框架的使用方法。
1. Single SPA
简介
Single SPA 是一个能让你将多个微前端应用组合成一个整体的 JavaScript 框架。它允许你在一个页面中运行多个不同的前端应用程序,并且这些应用程序可以用不同的框架(如 React、Angular、Vue)构建。
安装和设置
-
1. 创建项目目录
mkdir single-spa-root cd single-spa-root
-
2. 安装 single-spa-cli
npm install -g create-single-spa
-
3. 创建 root-config
npx create-single-spa
-
4. 选择 "root-config" 类型并按照提示完成项目配置
-
5. 安装所需依赖
cd root-config npm install
配置示例
在 src/index.ejs
文件中添加以下内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>single-spa</title>
<script src="https://unpkg.com/systemjs/dist/system.js"></script>
<script>
System.import('single-spa-config');
</script>
</head>
<body>
<single-spa-router></single-spa-router>
</body>
</html>
在 src/root-config.js
文件中:
import { registerApplication, start }from'single-spa';
registerApplication({
name:'@org-name/react-app',
app:() =>System.import('@org-name/react-app'),
activeWhen:['/react'],
});
registerApplication({
name:'@org-name/vue-app',
app:() =>System.import('@org-name/vue-app'),
activeWhen:['/vue'],
});
start();
2. Qiankun
简介
Qiankun 是一个基于 single-spa 实现的微前端框架,它极大地简化了微前端应用的搭建和管理过程。Qiankun 提供了更多的开箱即用特性,如沙箱机制、样式隔离等。
安装和设置
-
1. 创建主应用
mkdir qiankun-main cd qiankun-main npx create-react-app main-app cd main-app npm install qiankun --save
-
2. 配置主应用在
src/index.js
文件中:import { registerMicroApps, start }from'qiankun'; registerMicroApps([ { name:'reactApp', entry:'//localhost:7100', container:'#container', activeRule:'/react', }, { name:'vueApp', entry:'//localhost:7101', container:'#container', activeRule:'/vue', }, ]); start();
-
3. 创建子应用对于 React 子应用:
npx create-react-app react-app cd react-app npm install --save qiankun
在
src/index.js
文件中:import { renderWithQiankun, qiankunWindow }from'qiankun'; functionrender(props){ const{ container }= props; ReactDOM.render(<App />, container ? container.querySelector('#root'):document.querySelector('#root')); } if(!qiankunWindow.__POWERED_BY_QIANKUN__){ render({}); } exportasyncfunctionbootstrap(){} exportasyncfunctionmount(props){ render(props); } exportasyncfunctionunmount(props){ const{ container }= props; ReactDOM.unmountComponentAtNode(container ? container.querySelector('#root'):document.querySelector('#root')); }
3. Module Federation (Webpack 5)
简介
Module Federation 是 Webpack 5 引入的一项功能,它使得模块能够在运行时被加载和共享。通过 Module Federation,可以实现微前端架构中的应用和组件共享。
安装和设置
-
1. 创建项目目录
mkdir module-federation-app cd module-federation-app
-
2. 安装 Webpack 5
npm init -y npm install webpack webpack-cli --save-dev
-
3. 配置 Webpack在
webpack.config.js
文件中:const HtmlWebpackPlugin=require('html-webpack-plugin'); constModuleFederationPlugin=require('webpack').container.ModuleFederationPlugin; module.exports={ entry:'./src/index', mode:'development', devServer:{ contentBase:'./dist', }, output:{ publicPath:'http://localhost:8080/', }, module:{ rules:[ { test:/\.jsx?$/, loader:'babel-loader', exclude:/node_modules/, options:{ presets:['@babel/preset-react'], }, }, ], }, plugins:[ newModuleFederationPlugin({ name:'app', remotes:{ remoteApp:'remoteApp@http://localhost:8081/remoteEntry.js', }, shared:['react','react-dom'], }), newHtmlWebpackPlugin({ template:'./public/index.html', }), ], };
4. Piral
简介
Piral 是一个用于构建微前端应用的框架,它支持创建可扩展的微前端架构。Piral 提供了强大的 CLI 工具和丰富的插件,使得开发过程更加顺畅。
安装和设置
-
1. 创建 Piral 实例
npm init piral-instance my-app cd my-app npm start
-
2. 创建微前端插件
npm init pilet --source my-app cd my-pilet npm start
-
3. 配置 Piral在
src/index.tsx
文件中:import { renderInstance } from 'piral'; import { layout, errors } from './layout'; renderInstance({ layout, errors, plugins: [], });
5. Micro Frontends with React
简介
Micro Frontends with React 是通过组合多个独立的 React 应用来实现微前端架构的方案。每个子应用可以独立开发和部署,并且通过模块联邦或 iframe 等技术集成到主应用中。
安装和设置
-
1. 创建主应用
npx create-react-app main-app cd main-app
-
2. 创建子应用
npx create-react-app child-app cd child-app
-
3. 集成子应用在
main-app/src/App.js
文件中:import Reactfrom'react'; functionApp(){ return( <div className="App"> <h1>Main App</h1> <iframe src="http://localhost:3001" title="Child App" /> </div> ); } exportdefaultApp;
6. Luigi
简介
Luigi 是一个由 SAP 开发的微前端框架,专注于企业级应用的需求。它提供了简单的 API 和丰富的功能,如导航、权限管理等。
安装和设置
-
1. 创建 Luigi 应用
npx @luigi-project/create-react-app my-app cd my-app
-
2. 配置 Luigi在
luigi-config.js
文件中:Luigi.setConfig({ navigation:{ nodes:[{ pathSegment:'home', label:'Home', viewUrl:'/home', }], }, });
7. Mosaic
简介
Mosaic 是一个微前端框架,旨在帮助团队构建灵活、可扩展的前端应用。它支持多种前端框架,并提供了强大的开发工具和插件系统。
安装和设置
-
1. 创建 Mosaic 项目
npx create-mosaic-app my-app cd my-app
-
2. 配置 Mosaic在
mosaic.config.js
文件中:module.exports={ apps:[{ name:'app1', entry:'./src/app1/index.js', }], };
结论
通过对这7个微前端框架的详细介绍和安装配置示例,我相信你已经对它们有了更深刻的理解。
每个框架都有其独特的优势和适用场景,选择合适的框架可以极大地提高开发效率和项目质量。
希望这篇文章对你有所帮助,期待你在微前端的世界中探索出更多的可能性。
祝你编码愉快!Happy coding!
关注我,原创文章第一时间推送, 点赞和收藏就是最大的支持❤️