
它不是低代码替代品,是 ” 低代码 + 从零写 ” 中间那条缝——给 CRUD 重型业务应用,给你 100% 拥有你的代码。
写在前面
如果你做过中后台,你大概率踩过这三个坑:
- Retool / Appsmith 真香,但 SaaS 化 / 定价 / 数据出境让你失眠——甲方客户一问你 ” 数据能不能放我们机房 ” 就破功
- 从零写 React + Ant Design + Redux + React Router,每个新项目重写一遍 CRUD 模板,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 |
| @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。
七、风险与坑
- 不是开箱即用 :Retool 那种 ” 拖一下就上线 ”Refine 做不到。Refine 是脚手架, 你要写代码。甲方面对 ” 几个表单 ” 的需求时,1 天交付做不到。
- TypeScript 优先:99% TypeScript 写,对纯 JS 团队不友好(但 2026 年谁还用纯 JS?)
- Router 抽象有学习成本 :在 Next.js / Remix 里用 Refine 比纯 Next.js 多 1 层抽象, 简单项目反而慢。
- Headless ≠ 无 UI:很多人误以为 Refine 不带 UI,但其实它需要 4 个 UI 适配器之一。选择困难反而是另一个坑。
- 不是 CMS:想用 Refine 做博客 / 内容站 = 选错工具。payload / Strapi / Sanity 才是 CMS。
- 企业版路径模糊 :Refine Inc. 商业产品(Refine AI Agent / 高级模板)路线图刚开始, 未来被 SaaS 化的风险待观察。
- 包体积:完整
@refinedev/antd+antd≈ 2 MB(gzip),比纯 React 重。
八、总结
3 个 ” 最值得装 ” 的理由
- CRUD 省 1000+ 行代码 ——30+ Hooks 接管 80% 重复工作, 多项目复用 = 真正的省时间
- 三层抽象 = 抗变更 ——换后端 / 换 UI / 换路由都是 1 个 Provider 改动, 业务代码不动
- 100% 拥有代码 + MIT——没有 SaaS 锁定,没有厂商绑定,甲方审计 / 数据主权 / 合规全过
一句话建议
如果你 每年写 2 个以上中后台 ,Refine 是 2026 年 除了 Ant Design / shadcn/ui 之外必装 的 meta-framework。先跑 5 分钟脚手架,再判断要不要推广到团队。