Garfish微前端框架快速入门指南

Garfish微前端框架快速入门指南

garfish garfish 项目地址: https://gitcode.com/gh_mirrors/gar/garfish

前言

Garfish是一款由字节跳动开源的微前端框架,它能够帮助开发者轻松构建和管理多技术栈的前端应用。本文将详细介绍如何使用Garfish框架快速搭建微前端架构,包含主应用和子应用的完整接入流程。

主应用接入流程

1. 安装Garfish依赖

首先需要在主应用中安装Garfish核心包:

npm install garfish --save

2. 配置并启动Garfish

在主应用入口文件中,通过Garfish.run方法配置微前端环境:

import Garfish from 'garfish';

Garfish.run({
  basename: '/', // 基础路由
  domGetter: '#subApp', // 子应用挂载点
  apps: [
    {
      name: 'react-app', // 子应用名称
      activeWhen: '/react', // 激活路径
      entry: 'http://localhost:3000', // 子应用入口
    },
    {
      name: 'vue-app',
      activeWhen: '/vue',
      entry: 'http://localhost:8080/index.js',
    },
  ],
});

关键参数说明

  • basename:主应用的基础路由路径
  • domGetter:子应用挂载的DOM节点选择器
  • apps:子应用配置数组,每个子应用需要指定名称、激活路径和入口地址

3. 注意事项

  1. 确保挂载节点(domGetter)在页面中始终存在,避免因路由变化导致节点消失
  2. 对于动态加载需求,可以使用Garfish.loadApp方法手动控制子应用加载
const app = await Garfish.loadApp('vue-app', {
  domGetter: '#container',
  entry: 'http://localhost:3000',
  cache: true,
});

app.mounted ? app.show() : await app.mount();

子应用接入流程

1. 构建配置调整

子应用需要输出UMD格式的代码,以下是不同构建工具的配置方式:

Webpack配置
// webpack.config.js
module.exports = {
  output: {
    libraryTarget: 'umd',
    library: 'sub-app', // 需要与主应用中注册的子应用名称一致
    publicPath: 'http://localhost:3000',
  },
};
Vite配置
// vite.config.js
export default {
  build: {
    lib: {
      entry: './src/main.js',
      name: 'sub-app',
      formats: ['umd'],
      fileName: 'index',
    },
  },
};

2. 导出Provider函数

Garfish提供了@garfish/bridge-react等桥接包简化接入流程:

npm install @garfish/bridge-react --save

使用桥接包导出Provider:

import { reactBridge } from '@garfish/bridge-react';

export const provider = reactBridge({
  el: '#root', // 子应用挂载点
  rootComponent: App, // 根组件
  errorBoundary: () => <ErrorComponent />, // 错误边界组件
});

3. 路由配置调整

子应用需要根据主应用传递的basename调整路由:

import { BrowserRouter } from 'react-router-dom';

const RootComponent = ({ basename }) => {
  return (
    <BrowserRouter basename={basename}>
      {/* 路由配置 */}
    </BrowserRouter>
  );
};

常见框架适配指南

Garfish支持多种主流前端框架的接入:

  1. React:支持16/17/18版本
  2. Vue:支持2.x和3.x版本
  3. Vite:支持2.x版本
  4. Angular:支持13.x版本

最佳实践建议

  1. 主应用

    • 保持挂载节点稳定存在
    • 合理规划子应用的激活路径,避免冲突
    • 考虑使用代码拆分优化性能
  2. 子应用

    • 确保CSS样式隔离,避免污染全局样式
    • 实现完整的销毁逻辑,避免内存泄漏
    • 处理好静态资源路径,确保在微前端环境下能正确加载

总结

通过本文的介绍,我们了解了Garfish微前端框架的基本使用方式。主应用通过简单的配置即可接入多个子应用,而子应用只需要进行少量的改造就能融入微前端架构。Garfish提供了完善的API和工具链,大大降低了微前端架构的接入成本,是构建现代化前端应用的优秀选择。

garfish garfish 项目地址: https://gitcode.com/gh_mirrors/gar/garfish

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

余靖年Veronica

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值