Refine 调研:35,470 stars 的”开源版 Retool”,给 React 团队做中后台的 headless 元框架到底香在哪

90次阅读
Refine 调研:35,470 stars 的

它不是低代码替代品,是 ” 低代码 + 从零写 ” 中间那条缝——给 CRUD 重型业务应用,给你 100% 拥有你的代码。


写在前面

如果你做过中后台,你大概率踩过这三个坑:

  1. Retool / Appsmith 真香,但 SaaS 化 / 定价 / 数据出境让你失眠——甲方客户一问你 ” 数据能不能放我们机房 ” 就破功
  2. 从零写 React + Ant Design + Redux + React Router,每个新项目重写一遍 CRUD 模板,3 周过去了还在搭骨架
  3. shadcn/ui 后台模板 够用了,但接 RESTful / GraphQL / Supabase / Strapi 的时候又得自己写 dataProvider

Refine(refinedev/refine)就是为解决第三个坑来的。它把自己定位成 “open-source Retool for Enterprise”——React 元框架,给 CRUD 重型应用(管理后台 / 看板 / 内部工具 / B2B 前台)打地基。35,470 stars、MIT 协议、TypeScript 98%、v5.0.12 两个月前还在更新。

本文 10 分钟讲清楚:Refine 是什么 / 不是什么、怎么用、跟什么项目竞争、值不值得你下一个项目装上


一、它解决什么问题

一句话:Refine 不是 UI 框架,是 ” 中后台业务的脚手架 ”——它把 CRUD / 鉴权 / 路由 / 状态管理 / 网络 / i18n 这些 ” 每个项目都要重写 ” 的代码,抽象成 React Hooks(useList / useCreate / useUpdate / useDelete)+ Provider 配置(dataProvider / authProvider / accessControlProvider),你只写业务逻辑。

基本信息

维度 数值
仓库 refinedev/refine
定位 Open-source Retool for Enterprise · React meta-framework for CRUD-heavy apps
Stars 35,470
Forks 3,183
协议 MIT
主语言 TypeScript 98%
最新版 @refinedev/core@5.0.12(2026-04-02)
最近 commit 2026-06-05(2 个月前)
Open Issues 77(项目活跃 + 维护良好)
Watchers 148
官网 https://refine.dev
文档 https://refine.dev/core/docs
Discord 11K+ members
Twitter @refine_dev
母公司 Refine Inc.(US,982 followers)

关键观察 :35K stars + 77 open issues(不算多)+ MIT 协议 + 2 个月前还在 push = 健康活跃的开源项目。没有 Retool 那种 ” 被收购后 SaaS 化 ” 的隐忧。


二、核心能力:Hooks + Providers 双轮驱动

Refine 的架构就两块:Hooks(业务逻辑) + Providers(外部连接)。这两块通过 <Refine> 组件统一编排。

1. Hooks(核心 30+)

// 拉数据
const {data, isLoading} = useList({resource: "products"});
// 创建
const {mutate} = useCreate();
mutate({resource: "products", values: { name: "iPhone"} });
// 更新
const {mutate: update} = useUpdate();
update({resource: "products", id: 1, values: { price: 999} });
// 删除
const {mutate: remove} = useDelete();
remove({resource: "products", id: 1});
// 关联查询
const {data: categories} = useMany({
  resource: "categories",
  ids: [1, 2, 3],
});

这 30+ Hooks 覆盖了 80% 的 CRUD 场景——列表 / 详情 / 创建 / 编辑 / 删除 / 关联 / 筛选 / 排序 / 分页 / 实时刷新,一个不少。

2. Providers(外部连接)

Provider 作用 内置支持
dataProvider 数据源 REST / GraphQL / Supabase / Strapi / Airtable / NestJS / Appwrite / Hasura / Medusa / Firebase / SQL / JSON:API 等 15+
authProvider 鉴权 自定义 / Casbin / Keycloak / Auth0 / Supabase Auth / Strapi Auth
accessControlProvider 权限 CASL / Cerbos / 自定义
routerProvider 路由 React Router / Next.js / Remix / React Native
notificationProvider 通知 Ant Design / MUI / Mantine / Chakra UI
i18nProvider 国际化 react-i18next 内置

这意味着 :换后端就是改一个 dataProvider,换 UI 框架就是改一个 notificationProvider,换路由方案就是改一个 routerProvider—— 业务逻辑不动

3. Headless 架构 + UI 框架适配

Refine 核心层(@refinedev/core完全没有 UI 依赖。你要的样子,自己用 4 个内置 UI 适配器之一:

UI 框架 适配器包
Ant Design @refinedev/antd
Material UI @refinedev/mui
Mantine @refinedev/mantine
Chakra UI @refinedev/chakra-ui
shadcn/ui + Tailwind 自定义(社区方案)
Headless UI 自定义

也可以完全不要 UI 框架——只用 Hooks 写自己的组件,Refine 不绑架你。

4. AI Agent 原生集成(2026 主推)

README 明确写着:

Refine CORE also powers Refine’s purpose built AI agent.

含义 :Refine 官方做了一个 AI Agent(https://refine.dev/),可以 自然语言生成整个 Refine 项目。这是把 ”AI 写中后台 ” 这条路从 LLM 直出代码(不稳定)升级到 ”AI 调用成熟的 meta-framework”。

而且 Refine 本身 支持 MCP server(社区方案),让 Claude / Cursor 这些 Agent 直接调 Refine 工具建项目。


三、差异化能力:CRUD 抽象 + 路由抽象 + 适配器矩阵

Refine 区别于其他中后台框架的 最关键设计 —— 三层抽象

第 1 层:CRUD 抽象(数据层)

所有 ” 增删改查列表详情 ” 都被收敛成 30+ Hooks。你不再写:

// ❌ 原始 React 写法
const [products, setProducts] = useState([]);
useEffect(() => {fetch("/api/products").then(r => r.json()).then(setProducts);
}, []);

你写:

// ✅ Refine 写法
const {data} = useList({resource: "products"});

6 行 → 1 行。每个项目省下来的代码量 = 几百到几千行。

第 2 层:路由抽象(路由层)

Refine 不直接绑死一个路由库,而是通过 routerProvider 桥接:

// 用 React Router
import routerProvider from "@refinedev/react-router";

// 换 Next.js
import routerProvider from "@refinedev/nextjs-router";

业务代码 0 改动,路由从 SPA 切到 SSR / SSG / React Native 都可以。

第 3 层:UI 适配器(视图层)

// 用 Ant Design
import {ThemedLayout} from "@refinedev/antd";

// 换 MUI
import {ThemedLayout} from "@refinedev/mui";

设计系统换皮肤,业务逻辑不动

三个 ”sweet spot”

维度 低代码(Retool) Refine 从零写
起步速度 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐
长期可维护 ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
UI 自定义 ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
数据主权 ⭐⭐(SaaS) ⭐⭐⭐⭐⭐(自托管) ⭐⭐⭐⭐⭐
学习曲线 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐
接管成本 ⭐(被锁定) ⭐⭐⭐⭐(标准 React) ⭐⭐⭐⭐⭐

官方原话

“The sweet spot between low/no code and ‘starting from scratch’ for CRUD-heavy applications.”


四、实战:3 步跑通一个最小 CRUD

Step 1:创建项目

npm create refine-app@latest my-refine-app
# 选 UI 框架(MUI / Ant Design / Mantine / Chakra)# 选路由(React Router / Next.js / Remix)# 选数据源(REST / Supabase / Strapi / Hasura 等)

Step 2:装依赖

cd my-refine-app
npm install

Step 3:定义资源 + 渲染表格

// src/App.tsx
import {Refine} from "@refinedev/core";
import {ThemedLayout} from "@refinedev/mui";
import dataProvider from "@refinedev/simple-rest";
import routerProvider from "@refinedev/react-router";
import {BrowserRouter, Routes, Route, Outlet} from "react-router";
import {ProductList} from "./pages/products/list";

export default function App() {
  return (
    <BrowserRouter>
      <Refine
        dataProvider={dataProvider("https://api.fake-rest.refine.dev")}
        routerProvider={routerProvider}
        resources={[{name: "products", list: "/products"}]}
      >
        <Routes>
          <Route element={<ThemedLayout><Outlet /></ThemedLayout>}>
            <Route path="/products" element={<ProductList />} />
          </Route>
        </Routes>
      </Refine>
    </BrowserRouter>
  );
}

3 步 = 5 分钟,直接跑通 ” 列表 + 加载 + 关联查询 ” 的完整 CRUD。

数据流图(来自 README)

  React Components
        ↑
        │ (useList / useCreate / useUpdate / ...)
        │
  Refine Core (Hooks + Providers)
        ↑
        │ (dataProvider interface)
        │
  Backend (REST / GraphQL / Supabase / Strapi / ...)

五、对比:中后台框架的 5 个玩家

项目 定位 协议 Stars 一句话差异
Refine React 元框架(headless) MIT 35,470 用 React Hooks 抽象 CRUD + 15+ 后端 + 4 UI,100% 拥有代码
Retool 拖拽式低代码 商业 SaaS 拖拽最快,但锁死在 SaaS / 自托管贵
Appsmith 低代码开源 Apache-2.0 36K 拖拽式 + 自托管,但代码生成弱,复杂定制难
shadcn/ui + Tailwind UI 组件库 MIT 73K 纯 UI 组件,没有 dataProvider / authProvider 抽象
payloadcms/payload Next.js CMS + 后台 MIT 33K 强绑定 Next.js + 自带数据库,不是给你写后管,是给你写 CMS
NextAdmin / Refine Admin 商业模板 商业 模板类,定制深度有限

关键判断

Refine vs Retool

  • 你的甲方能不能接受 SaaS?
  • 能 → Retool 快
  • 不能 → Refine 跑自托管
  • 你的项目 1 年后还要继续维护吗?
  • 不要 → Retool
  • 要 → Refine(标准 React 代码)

Refine vs Appsmith

  • 业务逻辑复杂度?
  • 简单 CRUD → Appsmith 快
  • 复杂工作流 / 跨表 / 权限分级 → Refine 强

Refine vs shadcn/ui

  • 用 shadcn/ui 起步 → 写到第 3 周你会发现又在写 dataProvider
  • 用 Refine 起步 → Hooks 接管,省 1000+ 行重复代码

Refine vs payload

  • 你做一个 ” 内容网站 + 后台 ” → payload
  • 你做一个 ” 业务管理后台 + 内部工具 ” → Refine

适合谁

场景 选 Refine?
内部管理后台 / 看板 / 内部工具 ✅ 强烈推荐
B2B SaaS 的 ” 租户后台 ” ✅ 强烈推荐
多端后台(Web + React Native + Electron) ✅ React + React Router 一套代码
客户强需求 ” 数据不能出境 ” ✅ 自托管 + 100% 你的代码
数据主权 / 审计 / 合规 ✅ 自托管 + MIT 可审计
客户要 ”1 周上线不要代码 ” ❌ Appsmith / Retool
大量业务流程可视化编排 ❌ Appsmith / n8n
CMS 类内容网站 ❌ payload / Strapi

六、编辑器与工具能力

能力 实现方式
CLI 脚手架 npm create refine-app@latest 多选 UI/ 路由 / 数据源
Devtools @refinedev/devtools 浏览器扩展,实时看 Provider / 资源 / Hooks
15+ dataProvider REST / GraphQL / Supabase / Strapi / Airtable / NestJS / Appwrite / Hasura / Medusa / Firebase / SQL / JSON:API / Elide / Hygraph / Sanity
路由适配 React Router / Next.js / Remix / React Native
实时刷新 useInvalidate + liveMode: "auto" + liveProvider
i18n react-i18next 内置,支持 30+ 语言
权限 CASL / Cerbos / 自定义
AI Agent 官方 https://refine.dev/ + 社区 MCP server
模板库 CRM / 后台 / Win95 / PDF Invoice / Medium Clone / Multitenancy / Storefront 等 7+ 案例
Discord 11K+ members,活跃社区
CI/CD 标准 npm 包,GitHub Actions 支持

关键 hooks 速查表

类别 Hooks
数据查询 useList / useOne / useMany / useGetIdentity
数据变更 useCreate / useUpdate / useDelete / useCustomMutation
表单 useForm / useStepsForm / useEditableTable
资源 useResource / useResourceWithRoute
实时 useSubscription / useInvalidate
权限 useCan / useAccessControlProvider
导航 useNavigation / useGo
国际化 useTranslate

30+ Hooks 覆盖了 90% 中后台场景 ——你 几乎不需要自己写 fetch / Reducer


七、风险与坑

  1. 不是开箱即用 :Retool 那种 ” 拖一下就上线 ”Refine 做不到。Refine 是脚手架, 你要写代码。甲方面对 ” 几个表单 ” 的需求时,1 天交付做不到。
  2. TypeScript 优先:99% TypeScript 写,对纯 JS 团队不友好(但 2026 年谁还用纯 JS?)
  3. Router 抽象有学习成本 :在 Next.js / Remix 里用 Refine 比纯 Next.js 多 1 层抽象, 简单项目反而慢
  4. Headless ≠ 无 UI:很多人误以为 Refine 不带 UI,但其实它需要 4 个 UI 适配器之一。选择困难反而是另一个坑
  5. 不是 CMS:想用 Refine 做博客 / 内容站 = 选错工具。payload / Strapi / Sanity 才是 CMS。
  6. 企业版路径模糊 :Refine Inc. 商业产品(Refine AI Agent / 高级模板)路线图刚开始, 未来被 SaaS 化的风险待观察
  7. 包体积:完整 @refinedev/antd + antd ≈ 2 MB(gzip),比纯 React 重。

八、总结

3 个 ” 最值得装 ” 的理由

  1. CRUD 省 1000+ 行代码 ——30+ Hooks 接管 80% 重复工作, 多项目复用 = 真正的省时间
  2. 三层抽象 = 抗变更 ——换后端 / 换 UI / 换路由都是 1 个 Provider 改动, 业务代码不动
  3. 100% 拥有代码 + MIT——没有 SaaS 锁定,没有厂商绑定,甲方审计 / 数据主权 / 合规全过

一句话建议

如果你 每年写 2 个以上中后台 ,Refine 是 2026 年 除了 Ant Design / shadcn/ui 之外必装 的 meta-framework。先跑 5 分钟脚手架,再判断要不要推广到团队。


参考

  1. refinedev/refine GitHub
  2. Refine 官网
  3. Refine Core 文档
  4. Refine AI Agent
  5. v5.0.12 Release
  6. 集成列表
  7. 模板库
  8. Cube.js 调研:20K stars 的开源语义层
  9. FastApiAdmin 调研:992 stars 的中后台精装房
正文完