SuperAPI AI 工具集

react-to-gea-migration

前端与建站

查看项目

更新于 10-16 08:35

技能介绍

用途:该技能记录将 React 应用迁移到 Gea 框架的实战流程,基于对 oldboyxx/jira_clone 的完整迁移,涵盖路由、状态管理、styled-components、弹窗与拖拽等场景。开始前需阅读 gea-framework 技能了解 Stores、Components、JSX 规则与 Router,并阅读 gea-ui-components 技能。

迁移策略分阶段:先搭建 Gea 项目(package.json、vite.config.ts、index.html、src/main.ts,安装 @geajs/core、@geajs/vite-plugin、@geajs/ui,复制静态资源与全局 CSS 变量,可选配置 Tailwind);再转换数据层(把 Context、Redux slice、useState 转为 Store 类,创建 ToastStore 适配器,将鉴权从路由级 useEffect 移入 App.created());随后自顶向下转换组件、迁移样式(styled-components 转普通 CSS + CSS 变量)、替换路由、对照两版应用逐像素测试。

转换规则要点:函数组件与 hooks 改为继承 Component 的类组件,useState 改成员变量,useEffect 改 created() 与 dispose();不支持 Fragment,需用包裹 div;className 改 class;onClick 改 click,文本框 onChange 改 input,checkbox/select 改 change;不支持函数作为子元素,需用命名 render prop 属性。入口改为 new App() 后 app.render(...)。Store 始终导出单例,可直接变更(push、splice 等会触发响应式),派生值用 getter。路由用 @geajs/core 的 Router,router.ts 只导出裸实例避免循环依赖,setRoutes 在 App 中调用,用 <Outlet /> 渲染,守卫为同步函数,返回 true、路径字符串或组件,异步检查放组件 created()。

限制与说明:守卫有意保持同步;React.Fragment、函数子元素、propTypes 等方式在 Gea 中不适用;react-router-dom、styled-components、react-beautiful-dnd 等第三方库需替换或改用原生事件;富文本编辑器需借助 onAfterRender 手动管理 DOM。资料未提供该技能的收费、价格、平台等信息。