Next.js Refine 教學文件

Next.js + Refine Core 入門教學 (給新手)

這份教學將帶你快速了解如何使用 Next.js (React 框架) 結合 Refine (強大的無頭後端開發框架) 來打造企業級應用。


🚀 為什麼選擇這組合?


🛠️ 環境與設定流程

使用 Refine 的官方產生器可以快速完成初始化,無需手動設定繁雜的套件。

# 執行產生器並按照互動式介面選擇
npm create refine-app@latest

關鍵選擇建議:


🧩 核心概念速覽

Refine 的優勢在於將複雜的後台開發模組化,你只需要理解以下核心概念:

1. Resource (資源)

這是你應用程式中的業務物件 (如:文章、用戶、產品)。Refine 會根據資源名稱,自動為你建立對應的列表、新增、編輯與詳細頁面路由。

2. Data Provider (資料提供者)

這是 Refine 與後端 API 的溝通層。你只需將 API 位址提供給 Data Provider,後續的 GET, POST, PUT, DELETE 等操作將由 Refine 自動處理。

3. Hooks (功能鉤子) - 實作範例

Refine 提供了一組強大的 Hooks 來存取資料。以下是一個簡單的列表頁範例,展示如何使用 useTable 直接從 API 獲取資料並渲染:

"use client";
import { useTable } from "@refinedev/core";

export default function PostList() {
  // useTable 自動處理資料抓取、分頁與篩選
  const { tableQueryResult } = useTable({
    resource: "posts",
  });
  
  const { data, isLoading } = tableQueryResult;

  if (isLoading) return <div>載入中...</div>;

  return (
    <ul>
      {data?.data.map((post) => (
        <li key={post.id}>{post.title}</li>
      ))}
    </ul>
  );
}

💡 新手學習路徑建議

如果你是初學者,建議按照以下順序體驗 Refine 的開發模式:

  1. 先熟悉 Data Provider: 理解如何串接現有的 API (如 JSONPlaceholder),你會發現原本需要寫幾十行的 fetch 邏輯,現在一行 Hook 即可解決。
  2. 理解 App Router 整合: 查看如何使用 app/layout.tsx 配置 <Refine /> 供應器,這是所有功能的入口。
  3. 體驗 Headless 的靈活: 由於 Refine 是 Headless 的,你可以自由搭配任何你喜歡的 CSS 框架 (如 Tailwind CSS) 或 UI 元件庫。
  4. 深入 authProvider: 學習如何定義登入與權限檢查邏輯,這是企業應用最重要的部分。

🔗 官方資源與建議

Refine 的官方文件非常友善,新手可以多利用:

延伸閱讀