前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >字节微前端框架Garfish

字节微前端框架Garfish

作者头像
井九
发布于 2024-10-12 01:33:20
发布于 2024-10-12 01:33:20
40703
代码可运行
举报
文章被收录于专栏:四楼没电梯四楼没电梯
运行总次数:3
代码可运行

Garfish 是字节跳动开源的微前端框架,旨在应对现代 Web 应用在前端生态繁荣与应用日益复杂化背景下的挑战。本文将介绍如何使用 Garfish,提供代码示例,并与另一流行的微前端框架 Qiankun 进行对比分析。

安装 Garfish

首先,安装 Garfish 核心库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install @garfish/core --save

创建主应用

创建主应用的入口文件,如 index.jsmain.js,并初始化 Garfish:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Garfish from '@garfish/core';

const garfish = new Garfish({
  router: {
    historyType: 'hash',
    publicPath: '/',
    routes: [
      {
        path: '/app1',
        microApp: {
          name: 'app1',
          entry: '//localhost:8081',
          container: '#root',
          activeRule: (location) => location.pathname === '/app1',
        },
      },
      {
        path: '/app2',
        microApp: {
          name: 'app2',
          entry: '//localhost:8082',
          container: '#root',
          activeRule: (location) => location.pathname === '/app2',
        },
      },
    ],
  },
});

garfish.start();

开发与构建微应用

每个微应用都应有独立的构建流程,以下是基于 localhost:8081 运行的 Vue 应用示例:

Vue 示例

在微应用中,暴露必要的 API 供 Garfish 调用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// app1/main.js
import { bootstrap, mount, unmount } from '@garfish/runtime-vue';
import App from './App.vue';

bootstrap(App).then(mount(App)).catch(console.error);

window.unmount = unmount;

使用 Webpack 或 Rollup 等工具来打包微应用。例如,使用 Webpack:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// webpack.config.js
module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    publicPath: '/',
  },
  // 其他配置...
};

打包完成后,将微应用部署到相应的服务器,如 localhost:8081

Garfish 与 Qiankun 的对比

技术栈支持
  • Garfish:兼容 Vue、React、Angular 等多种前端框架。
  • Qiankun:同样支持多种前端框架,但在某些场景下的兼容性和表现可能有所不同。
路由管理
  • Garfish:通过路由规则管理微应用的加载与卸载。
  • Qiankun:采用类似机制,但在细节处理上存在一些差异。
隔离机制
  • Garfish:使用沙箱机制,减少全局变量污染的风险。
  • Qiankun:也提供了沙箱机制,但在某些案例中表现略逊。
配置复杂度
  • Garfish:配置相对简单,路由配置即可启动。
  • Qiankun:配置较为详细,尤其在处理跨域资源和状态管理时。
社区支持和文档
  • Garfish:字节跳动出品,拥有强大的社区支持和丰富的文档资源。
  • Qiankun:社区支持广泛,但文档和示例相对较少。

Garfish 常见问题

Garfish 支持哪些前端框架?

Garfish 支持包括 Vue、React、Angular 在内的多种前端框架,开发者可以根据自身的技术栈选择合适的框架。

如何处理跨域问题?
  1. CORS 设置:确保服务器配置了适当的 CORS 设置。
  2. 代理:在开发环境中使用 Webpack 等构建工具的代理功能。
  3. JSONP:某些 API 场景下,可考虑使用 JSONP 请求。
如何保证微应用间的隔离?

Garfish 内置 VM 沙箱机制,确保微应用之间的资源隔离,避免全局变量污染。

如何调试微应用?
  1. 开发者工具:利用浏览器的开发者工具。
  2. 日志输出:使用 console.log() 等方法输出调试信息。
  3. 单元测试:编写单元测试覆盖微应用的功能点。

结论

Garfish 为微前端开发提供了强大的工具集,能够有效解决跨团队协作、技术体系多样化等问题。Garfish 与 Qiankun 各有优势,选择框架时应根据项目的具体需求和技术偏好。通过遵循本指南,你可以充分利用 Garfish 的强大功能,构建高效、可维护的微前端系统。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
初探 MicroApp,一个极致简洁的微前端框架
在微前端的领域里,相信大家都听说过阿里的 qiankun。我自己在上几个月也一直用它来做一些实践:
写代码的海怪
2022/03/30
1.7K0
初探 MicroApp,一个极致简洁的微前端框架
聊聊微前端的原理和实践
本文对微前端的概念和场景进行科普,介绍一些主流的微前端的实现库及其用法,并讲解部分这些库的原理和实践知识。
2020labs小助手
2020/07/27
2.2K0
当企微侧边栏遇上微前端
同样地,为了不浪费大家的时候,如果你不知道 企微侧边栏 是什么,这篇文章可以关掉了。
写代码的海怪
2022/03/30
1.4K0
当企微侧边栏遇上微前端
记一次 微前端 qiankun 项目 实践 !!! 防踩坑指南
最近在做微前端的项目 , 过程中真是踩了不少坑 , 在有限的资料中不断试错 , 默默无语两行泪 哈哈.  在此次将采坑部分都记录下来, 让更多的人少走点弯路 ,   此项目使用 蚂蚁金服qiankun 为基础作为开发 . 话不多说 开讲 !!!
王小婷
2020/11/02
3.5K0
2022年了你必须要学会搭建微前端项目及部署方式
一、微前端简介 微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用可以独立运行、独立开发、独立部署。 微前端的好处 应用自治。只需要遵循统一的接口规范或者框架,以便于系统集成到一起,相互之间是不存在依赖关系的。 单一职责。每个前端应用可以只关注于自己所需要完成的功能。 技术栈无关。你可以使用 Angular 的同时,又可以使用 React 和 Vue。 微前端的缺点 应用的拆分基础依赖于基础设施的构建
前端进阶之旅
2022/01/06
2.4K0
2022年了你必须要学会搭建微前端项目及部署方式
我们是怎么在项目中落地qiankun的
由于业务增长,团队拆分,我们需要将原有系统的一部分模块(Vue实现)迁移到另外一个系统(React)中。但两个系统技术栈不同,导致重构成本变大,但业务又希望在短期内看到效果,后面可以增量的重构。
GopalFeng
2022/08/01
1.6K0
我们是怎么在项目中落地qiankun的
腾讯无界微前端框架介绍
无界微前端框架是由腾讯团队推出的,旨在解决现有微前端方案中存在的问题,如适配成本高、样式隔离困难、运行性能不佳、页面白屏、子应用通信复杂、子应用保活机制缺乏等。
井九
2024/10/12
1.4K0
腾讯无界微前端框架介绍
微前端框架 qiankun 项目实战(一)--本地开发篇
公司使用技术栈是vue,最近遇到了一个需求,要把原有后台管理系统的功能模块搬迁到新的后台管理系统上面去。原本这没有多复杂的事,直接复制粘贴改改就可以,但是有这么几个坑点,我瞬间陷入了沉思:
落落落洛克
2021/07/05
1K0
微前端框架 qiankun 项目实战(一)--本地开发篇
微前端框架qiankun项目实战(二)--踩坑与部署篇
在上一篇《微前端框架qiankun项目实战(一)--本地开发篇》发布后,感谢有网友提出了微应用的缓存问题,的确基于第一篇使用的registerMicroApps方式很难做到缓存,要做到应用缓存的方式使用手动加载管理微应用的方式是最好的,我将再写一篇补充篇使用loadMicroApp手动管理微应用,本篇我会模拟部署一下主应用和微应用,并将揭开我上一篇所谓的巨坑是什么。
coder_koala
2021/07/08
1.9K0
微前端框架qiankun项目实战(二)--踩坑与部署篇
作为面试官,为什么我推荐微前端作为前端面试的亮点?
作为面试官,我经常听到很多候选人说在公司做的项目很简单,平常就是堆页面,写管理端,写H5,没有任何亮点,我以我一次面试候选人的经历分享给大家
linwu
2023/07/27
1.3K0
作为面试官,为什么我推荐微前端作为前端面试的亮点?
微前端从singleSpa到qiankun
微前端解决什么问题?近几年前端的工程化知识开发愈演愈烈,后端解耦,前端聚合,兴起微前端的技术主要是因为SPA项目工程,得到了长足的发展,所有的微前端都是为了解决工程与工程之间的粘合问题即是 从所有收集的部分组成并返回一个无缝的HTML页面
用户10106350
2022/10/28
1.3K0
微前端从singleSpa到qiankun
万字解析微前端、微前端框架qiankun以及源码
本文将针对微前端框架 qiankun 的源码进行深入解析,在源码讲解之前,我们先来了解一下什么是 微前端。
前端达人
2020/05/13
3K0
基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇
本文是基于 qiankun 的微前端最佳实践系列文章之 从 0 到 1 篇,本文将分享如何使用 qiankun 如何搭建主应用基座,然后接入不同技术栈的微应用,完成微前端架构的从 0 到 1。
coder_koala
2020/12/17
7.5K0
基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇
深度:从零编写一个微前端框架
那么现在我们需要手写一个微前端框架,首先得让大家知道什么是微前端,现在微前端模式分很多种,但是大都是一个基座+多个子应用模式,根据子应用注册的规则,去展示子应用。
Peter谭金杰
2020/05/18
1.4K0
深度:从零编写一个微前端框架
让前端走进微时代, 微微一弄很哇塞!
微前端这个词这两年很频繁的出现在大家的视野中,主要是把微服务的概念引入到了前端,让前端的多个模块或者应用解耦,做到让前端的子模块独立仓储,独立运行,独立部署。
yuanyi928
2020/07/02
2.2K0
微前端方案 qiankun 只是更完善的 single-spa
一个前端应用能够单独跑,也能被作为一个模块集成到另一个应用里,这种架构方式就叫做微前端。
神说要有光zxg
2022/11/11
1.1K0
微前端方案 qiankun 只是更完善的 single-spa
微前端究竟是什么?微前端核心技术揭秘!
导语 | 微前端是将Web应用由单一的单体应用转变为多个小型前端应用聚合为一的一种手段。本文从微前端的基础理论出发,对其核心技术进行阐述,最后结合项目进行简单的应用实践。 一、微前端背景 (一)什么是微前端 微前端提供了一种技术:可以将多个独立的Web应用聚合到一起,提供统一的访问入口。一个微前端应用给用户的感观就是一个完整的应用,但是在技术角度上是由一个个独立的应用组合通过某种方式组合而成的。 为了防止概念有点抽象,可以看一个具体的例子:上图是一个微前端的demo,主应用中有导航栏,footer组件以及
腾讯云开发者
2022/02/24
2.7K0
微前端之qiankun微前端
微前端项目是将每一个可以独立开发,测试,部署的子项目集合到一个主项目之下。对于用户来说,主项目仍然是一个完整的产品,而整个组装的过程对于用户来说,是透明的。
雪糕的晴天
2021/04/01
2.7K0
微前端之qiankun微前端
从原理层面谈谈微前端的实现
之前聊过Webpack5提供的ModuleFederation,以及深入探讨了一下它的可能性,有小伙伴问我,这就是微前端吗,看起来好复杂。Emm,通过ModuleFederation确实可以很轻松地实现微前端开发,但微前端的实现可以不借助工具,今天我们就抛开Webpack,来谈谈微前端。
写代码的阿宗
2021/09/10
5050
微前端在小米 CRM 系统的实践
大型组织的组织结构、软件架构在不断地发生变化。移动优先(Mobile First)、App中台(One App)、中台战略等,各种口号在不断的提出、修改和演进。同时,业务也在不断地发展,导致应用不断膨胀,进一步映射到软件架构上。
苏南
2020/12/16
1.1K0
微前端在小米 CRM 系统的实践
推荐阅读
相关推荐
初探 MicroApp,一个极致简洁的微前端框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验