Ian Chou's Blog

143 個 React / React Native 練習 App 完整圖鑑:從行為反推學習重點

143 個 React / React Native 練習 App 完整圖鑑

本文是 《React 課綱設計報告:從 143 個 App 反推該教什麼》配套素材庫
課綱那篇是「給老師看的決策報告」,這篇是「給學習者看的練習目錄」——每個 App 都附上難度分級、一句話學習重點、React 觀念、RN 對應,挑一個就能開始做。
系列第三篇 《AI 輔助改變了什麼》 則示範怎麼把本篇的「React 主題」欄反過來當 AI 易錯點索引用。


〇、這篇圖鑑怎麼用

課綱文章回答的是「該教哪些」,這篇圖鑑回答的是「做完這個 App,我會學到什麼」。

兩篇搭著用:

  1. 先看課綱文章,決定你的目標等級(L1–L5)與時數。
  2. 回來這篇,依目標等級挑 App 練習。
  3. 每個 App 的「React 主題」欄位,就是這個 App 會逼你學會的觀念——做不出來就回頭補那塊。

難度分級(對應課綱第五節的能力地圖)

等級 意思 代表 App
L1 最小互動,單一狀態 Todo、Quiz、Flashcard、Counter
L2 狀態變複雜,跨元件共享 Shopping Cart、Kanban、Calendar、Multi-step Form
L3 接外部資料與副作用 Dashboard、Login、Search、Blog、Weather
L4 多頁大型應用結構 E-commerce、CMS、Admin Panel、Social Feed
L5 即時、裝置、進階互動 Chat、Map、Camera、Collaboration、Game

每個 App 的條目結構

**App 名稱** `難度` — 一句話學到什麼
- 行為:這個 App 要做什麼
- React 主題:Web 端會用到的核心觀念
- RN 對應:轉到 React Native 要換成什麼

React 主題優先學的;RN 對應 只在你做行動端時才需要。Web 學習者可以略過 RN 欄。

10 大組別 × 難度分布

graph LR
    G1["1. 基礎互動與表單
L1–L3"] --> G2["2. 內容管理與編輯器
L2–L5"] G2 --> G3["3. 任務與生產力
L1–L4"] G3 --> G4["4. 電商與交易
L1–L5"] G4 --> G5["5. 金融與數據儀表板
L2–L5"] G5 --> G6["6. 社交與即時通訊
L2–L5"] G6 --> G7["7. 媒體與創意工具
L2–L5"] G7 --> G8["8. 地理位置與生活實用
L2–L5"] G8 --> G9["9. 學習、遊戲與系統工具
L1–L5"] G9 --> G10["10. 行銷、支援與進階整合
L2–L5"] style G1 fill:#e0f2fe,stroke:#0369a1 style G2 fill:#fef9c3,stroke:#a16207 style G3 fill:#dcfce7,stroke:#15803d style G4 fill:#ffedd5,stroke:#c2410c style G5 fill:#ffedd5,stroke:#c2410c style G6 fill:#fee2e2,stroke:#b91c1c style G7 fill:#fee2e2,stroke:#b91c1c style G8 fill:#fee2e2,stroke:#b91c1c style G9 fill:#dcfce7,stroke:#15803d style G10 fill:#fee2e2,stroke:#b91c1c

一、基礎互動與表單

這組的主題:使用者輸入資料、前端驗證、流程控制。是 React 「受控元件 + 狀態 + 條件渲染」三件套的練功房。做完這組,你會內化「UI 是 state 的函數」這句話。

Counter App L1useState 的第一課。

Simple Form App L1 — 受控元件的起點。

Login / Auth App L3 — 表單驗證 + 非同步狀態 + 路由守衛三合一。

Search App L3 — Debounce 與 race condition 的必修課。

Form Builder App L2 — 動態渲染與 JSON Schema 的初體驗。

Survey App L1 — 條件渲染的經典教材。

Multi-step Form App L2useReducer 管理流程的最佳入門。

Onboarding App L2 — Portal 與絕對定位的練習。


二、內容管理與編輯器

這組的主題:複雜文字處理、資料結構 ↔ UI 對應、效能。富文本與協作編輯是前端最硬的領域之一,做到這組代表你已脫離新手期。

Blog App L3 — 動態路由與內容渲染的入門。

CMS App L4 — CRUD + 狀態機 + 權限三合一。

Note-taking App L2 — Debounce 自動儲存的經典案例。

Markdown Editor App L3 — 即時預覽與雙向綁定。

Rich Text Editor App L4contentEditable 與 Selection API 的深水區。

Document Editor App L5 — CRDT 與虛擬列表的極限挑戰。

Table Editor App L3 — 網格渲染與鍵盤導航。

Spreadsheet-like App L5 — 大量資料 + 公式引擎 + 效能優化。


三、任務與生產力

這組的主題:狀態流轉、時間排序、拖拉互動。是「狀態機 + normalized state」的核心戰場。

Todo App L1 — React 的 Hello World。

Task Management App L3 — 任務依賴與正規化狀態。

Project Management App L4 — 多視角呈現同一份資料。

Kanban Board App L2 — Drag & Drop 的入門教材。

Calendar App L2 — 日期運算與網格佈局。

Scheduling App L3 — 時間槽選取與衝突偵測。

Booking App L3 — 表單 + 狀態 + 預約確認流程。

Reservation App L3 — 即時庫存與並發控制概念。

Event Management App L4 — 報名流程 + QR 報到。


四、電商與交易

這組的主題:商品展示、購物車邏輯、金流整合、即時追蹤。是狀態管理與外部 API 整合的大型綜合練習。

Shopping Cart App L2 — 跨元件狀態共享的典範。

Checkout App L3 — 結帳放棄率的戰場。

E-commerce App L4 — 完整產品級應用。

Product Catalog App L3 — 列表 + 過濾 + 分頁。

Marketplace App L4 — 角色權限路由。

Wishlist App L1 — LocalStorage 持久化的入門。

Price Comparison App L3 — 並發請求與資料聚合。

Order Tracking App L3 — 輪詢與進度狀態。

Delivery Tracking App L5 — 即時地圖軌跡。

Inventory Management App L4 — 條碼掃描 + 快速操作。

POS App L4 — 鍵盤驅動的高頻操作。


五、金融與數據儀表板

這組的主題:大量數據呈現、圖表、即時更新、列印輸出。是「useEffect + 資料取得 + 效能優化」的進階訓練。

Dashboard App L3 — 資料取得 + 載入/錯誤狀態的範本。

Analytics App L4 — 圖表互動與資料鑽取。

Data Visualization App L4 — D3 等級的視覺化。

Report Builder App L4 — 拖拉 + 列印輸出。

Finance Tracker App L2 — 表單 + 分類統計。

Budgeting App L3 — 預算追蹤與警示。

Expense Splitter App L3 — 複雜分帳邏輯。

Invoice App L4 — PDF 生成與列印。

Banking UI App L4 — 安全性與 3D 互動。

Account Management App L3 — 設定流程的範本。

Crypto Portfolio App L5 — 高頻即時報價。

Stock Watchlist App L5 — 即時報價 + 自選清單。

ERP Dashboard App L4 — 大量表格與權限。

Admin Panel App L4 — 後台系統的集大成。

CRM App L4 — 客戶關係管理。


六、社交與即時通訊

這組的主題:即時數據、捲動效能、樂觀更新。是 WebSocket 與虛擬列表的主場。

Chat App L5 — 即時通訊的集大成。

Customer Support Chat App L5 — Chat + 工單整合。

Social Feed App L4 — 無限滾動與樂觀更新。

Forum App L4 — 巢狀討論串。

Community App L4 — 社群經營平台。

Realtime Collaboration App L5 — CRDT 與多人游標。

Polling App L2 — 即時長條圖動畫。

Voting App L2 — Polling 的變體。

Review App L2 — 受控元件與 hover 狀態。

Rating App L2 — 拖曳評分的練習。


七、媒體與創意工具

這組的主題:多媒體處理、Canvas / SVG、手勢操作。是 Web 平台 API 與原生能力差距最大的區域。

Image Gallery App L2 — Grid + Lightbox。

Portfolio App L2 — 靜態展示 + 動態效果。

Media Library App L3 — 大量媒體管理。

Video Player App L3<video> API 深度控制。

Course Player App L4 — 影片 + 互動 + 進度。

Music Player App L3<audio> API + 狀態機。

Podcast App L3 — 音訊 + 章節 + 訂閱。

Whiteboard App L5 — Canvas + 即時協作。

Drawing App L5 — Canvas 繪圖的純粹練習。

Canvas App L5 — 通用畫布的進階。

Photo Editor App L4 — 濾鏡 + 裁切 + 旋轉。

Diagram Editor App L5 — 節點 + 連線。

Mind Map App L5 — 階層式節點。

Flowchart Builder App L5 — Diagram 的流程圖特化。


八、地理位置與生活實用

這組的主題:手機感測器、系統 API、背景任務。Web 端能力受限,多數進階功能只在 RN 才完整。

Weather App L3 — API 串接的入門範本。

Map App L5 — 地圖庫整合。

Location Finder App L4 — 地圖 + 搜尋 + 過濾。

Restaurant Finder App L4 — Location Finder 的美食特化。

Travel Planner App L4 — 時間軸 + 地圖整合。

Itinerary App L3 — 時間軸排程。

Ride Hailing App L5 — 叫車的即時追蹤。

Food Delivery App L5 — 外送的完整流程。

Recipe App L2 — 元件拆解與勾選狀態。

Meal Planner App L3 — 週計畫 + 採購清單。

Health Journal App L3 — 圖表記錄 + 目標追蹤。

Fitness Tracker App L4 — 感測器 + 圖表整合。

Workout Planner App L3 — 計時器 + 組間休息。

Meditation App L2 — 無縫動畫迴圈。


九、學習、遊戲與系統工具

這組的主題:邏輯判斷、計時器、系統設定整合。涵蓋從 L1L5(Game App 是本組唯一的 L5),跨度最大,是新手到中階的橋樑區。

Learning Management App L4 — 學習平台。

Quiz App L1 — 狀態機的入門。

Flashcard App L1 — 3D 翻轉動畫。

Coding Practice App L4 — 程式碼編輯 + 執行。

Language Learning App L4 — 語音 + 間隔複習。

Habit Tracker App L2 — 連續打卡與日曆標記。

Game App L5 — 遊戲迴圈與 requestAnimationFrame

Memory Card Game App L2 — 配對記憶遊戲。

Typing Game App L3 — 鍵盤事件 + 計時。

Puzzle Game App L3 — 邏輯解謎。

Calculator App L1 — 狀態機思維的第一次接觸。

Timer App L1setInterval 的入門。

Pomodoro App L2 — 番茄鐘狀態機。

Stopwatch App L1 — 高精度計時。

Alarm App L3 — 排程與本地推播。

Reminder App L3 — 提醒排程。

Notification Center App L4 — 通知管理。

Settings App L3 — 設定表單與持久化。

Profile App L3 — 個人檔案編輯。

Theme Customizer App L3 — 動態主題。

Design System Demo App L4 — 設計系統展示。

Component Library App L4 — 元件庫文件。

Storybook-like App L4 — 自製 Storybook。


十、行銷、支援與進階整合

這組的主題:SEO、客服系統、底層硬體與原生 API。是從「Web App」跨向「裝置級應用」的邊界。

Landing Page App L3 — SEO + 響應式 + 動畫。

Marketing Site App L4 — 多頁行銷網站。

Pricing Page App L2 — 比較表 + 切換。

FAQ App L2 — 折疊面板。

Help Center App L3 — 知識庫 + 搜尋。

Ticketing System App L4 — 工單狀態流轉。

Live Streaming App L5 — 即時影音串流。

Webinar App L5 — 研討會平台。

Meeting App L5 — 視訊會議。

Video Call App L5 — 一對一視訊。

Offline-first Notes App L5 — 離線優先架構。

Sync Queue App L5 — 同步佇列核心。

PWA App L4 — 漸進式網頁應用。

Camera App L5 — 相機深度控制。

QR Scanner App L4 — QR 掃描。

Barcode Scanner App L4 — 條碼掃描。

AR Demo App L5 — 擴增實境。

Sensor App L5 — 感測器讀取。

Bluetooth Device App L5 — 藍牙裝置連線。

IoT Control App L5 — IoT 裝置控制。

Smart Home App L5 — 智慧家庭。

Push Notification App L4 — 推播系統。

Deep Link Demo App L3 — 深層連結。

Native Navigation Demo App L4 — 原生導航體驗。

Gesture Demo App L4 — 手勢示範。

Animation Demo App L4 — 動畫示範。

Accessibility Demo App L3 — 無障礙支援。

Internationalization Demo App L3 — 多國語言。

Permission Handling App L4 — 權限請求流程。

Secure Storage App L3 — 加密儲存。

Biometric Login App L4 — 生物辨識登入。


十一、把 143 個 App 變成你的學習路線

拿到這份圖鑑,多數人的反應是「眼花」。下面提供三條已經排好的路線,挑一條走完,能力就會紮實。

路線 A|新手入門(10 個 App,L1 → L2)

目標:內化 React 三件套(state、props、列表)。全程 Web,不碰 RN。

Todo App (L1)
  → Flashcard App (L1)
  → Quiz App (L1)
  → Wishlist App (L1)
  → Survey App (L1)
  → Habit Tracker App (L2)
  → Shopping Cart App (L2)
  → Multi-step Form App (L2)
  → Kanban Board App (L2)
  → Note-taking App (L2)

走完這條線,你會徹底搞懂:useStateuseReducer、列表渲染、條件渲染、derived state、Context、LocalStorage、immutable update、DnD 基礎。這批觀念覆蓋了課綱 Layer 1 的大半;剩下的 useEffect、Refs、Custom Hooks,會在路線 B 的 L3 App 補上。

路線 B|Web 全端(12 個 App,L3 → L4)

目標:能獨立做出可上線的多頁 Web 產品。接續路線 A,往下走到 L4。

Search App (L3)
Weather App (L3)
Blog App (L3)
Login / Auth App (L3)
Dashboard App (L3)
  → CMS App (L4)
  → E-commerce App (L4)
  → Admin Panel App (L4)
  → Social Feed App (L4)
  → Learning Management App (L4)
  → CRM App (L4)
  → Ticketing System App (L4)

走完這條線,你會徹底搞懂:useEffect、資料取得、載入/錯誤狀態、debounce、custom hooks、路由、巢狀版面、權限路由、全域狀態、快取、DataTable。這就是課綱方案 B 的完整能力圖譜。

路線 C|RN 行動開發(10 個 App,L1 → L5)

目標:能做出用到相機、推播、離線的行動 App。先學完 Web 核心(路線 A 的觀念),再切 RN。

Todo App (L1, RN 版)
  → Note-taking App (L2)
  → Settings App (L3)
  → Weather App (L3)
  → Camera App (L5)
  → QR Scanner App (L4)
  → Map App (L5)
  → Chat App (L5)
  → Push Notification App (L4)
  → Offline-first Notes App (L5)

走完這條線,你會徹底搞懂:StyleSheetFlatListAsyncStorage、React Navigation、相機/相簿權限、推播、WebSocket、背景同步、衝突解決。這就是課綱方案 C 的完整能力圖譜。


十二、與課綱文章的對照

這篇圖鑑與 《React 課綱設計報告》 是一套:

你想做的事 看哪篇
決定課程要教什麼、不教什麼 課綱文章(給老師的決策報告)
決定課程時數與預設方案 課綱文章(第五節三套方案)
決定課程該用 Web 還是 RN 課綱文章(第二節 Q3)
挑一個 App 練習,看學到什麼 這篇圖鑑
排個人學習路線 這篇圖鑑(第十一節)
查「做這個 App 會逼出哪些觀念」 這篇圖鑑 + 課綱第六節速查表

兩篇搭著用:用課綱文章定方向,用這篇圖鑑挑題目


十三、最後一句話

這 143 個 App,沒有人會全部做完。也不需要。

挑一條路線(A / B / C),做 10 個。做完之後你會發現——React 的核心觀念其實就是課綱 Layer 1 那 20 個,剩下的 130 多個 App,只是同一批觀念在不同情境的排列組合。

學 React 不是學完 143 個 App,而是做 10 個 App,把那 20 個觀念內化成直覺。剩下的,是用查的,不是用背的。


本圖鑑涵蓋 143 個常見前端應用,依應用行為分為 10 大組別。所有難度分級(L1–L5)與課綱文章的能力地圖一致,可互相對照。若你想知道「這些 App 該怎麼排進課程」,請看課綱文章;若你想知道「這個 App 做完我會學到什麼」,留在這篇。