了解这7个微前端框架,摸鱼时间可以大大增加!!

大家好,我是CodeQi! 

在2024年,前端开发的世界变得越来越分散化。

作为一名开发者,我深刻感受到微前端架构在大型项目中的重要性和便利性。

微前端技术不仅解决了单体前端应用的复杂性,还提高了开发团队的独立性和灵活性。

​今天,我将和大家分享2024年最受欢迎的7个微前端框架,并详细讲解每个框架的使用方法。

1. Single SPA

简介

Single SPA 是一个能让你将多个微前端应用组合成一个整体的 JavaScript 框架。它允许你在一个页面中运行多个不同的前端应用程序,并且这些应用程序可以用不同的框架(如 React、Angular、Vue)构建。

安装和设置

  1. 1. 创建项目目录

    mkdir single-spa-root
    cd single-spa-root
  2. 2. 安装 single-spa-cli

    npm install -g create-single-spa
  3. 3. 创建 root-config

    npx create-single-spa
  4. 4. 选择 "root-config" 类型并按照提示完成项目配置

  5. 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. 1. 创建主应用

    mkdir qiankun-main
    cd qiankun-main
    npx create-react-app main-app
    cd main-app
    npm install qiankun --save
  2. 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. 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. 1. 创建项目目录

    mkdir module-federation-app
    cd module-federation-app
  2. 2. 安装 Webpack 5

    npm init -y
    npm install webpack webpack-cli --save-dev
  3. 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. 1. 创建 Piral 实例

    npm init piral-instance my-app
    cd my-app
    npm start
  2. 2. 创建微前端插件

    npm init pilet --source my-app
    cd my-pilet
    npm start
  3. 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. 1. 创建主应用

    npx create-react-app main-app
    cd main-app
  2. 2. 创建子应用

    npx create-react-app child-app
    cd child-app
  3. 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. 1. 创建 Luigi 应用

    npx @luigi-project/create-react-app my-app
    cd my-app
  2. 2. 配置 Luigi在 luigi-config.js 文件中:

    Luigi.setConfig({
    navigation:{
        ​nodes:[{
        ​    ​pathSegment:'home',
            ​​label:'Home',
        ​    ​viewUrl:'/home',
        ​    ​}],
        ​},
    });

7. Mosaic

简介

Mosaic 是一个微前端框架,旨在帮助团队构建灵活、可扩展的前端应用。它支持多种前端框架,并提供了强大的开发工具和插件系统。

安装和设置

  1. 1. 创建 Mosaic 项目

    npx create-mosaic-app my-app
    cd my-app
  2. 2. 配置 Mosaic在 mosaic.config.js 文件中:

    module.exports={
        ​apps:[{
        ​    ​    ​name:'app1',
        ​    ​    ​entry:'./src/app1/index.js',
       }],
    };

结论

通过对这7个微前端框架的详细介绍和安装配置示例,我相信你已经对它们有了更深刻的理解。

每个框架都有其独特的优势和适用场景,选择合适的框架可以极大地提高开发效率和项目质量。

希望这篇文章对你有所帮助,期待你在微前端的世界中探索出更多的可能性。


祝你编码愉快!Happy coding!

关注我,原创文章第一时间推送, 点赞和收藏就是最大的支持❤️

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeQi技术小栈

喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值