技能 react-native-dev
📱

react-native-dev

安全 ⚙️ 外部命令

打造 React Native 與 Expo 應用程式

使用 React Native 開發行動應用程式需要在元件、狀態管理、動畫和部署等複雜的選擇中做出決策。此技能提供結構化的開發指南,包含經驗證的設計模式、推薦的函式庫以及可投入生產環境的 Expo 與 React Native 專案範例。

支援: Claude Codex Code(CC)
🥉 76 青銅
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「react-native-dev」。 使用 Expo Router 建立包含 Home、Search 與 Profile 分頁的 tab 導航佈局。

預期結果:

  • 一個 tab 佈局檔案(app/(tabs)/_layout.tsx),使用來自 expo-router 的 Tabs 元件
  • 三個分頁畫面定義,搭配 Ionicons 圖示
  • 包含大標題支援與自訂樣式表頭的 Header 設定
  • 個別路由檔案:app/(tabs)/home.tsx、app/(tabs)/search.tsx、app/(tabs)/profile.tsx

正在使用「react-native-dev」。 展示如何在 Zustand 中使用 persist middleware 管理使用者偏好設定。

預期結果:

  • 一個包含 create 與 persist middleware 的 Zustand store 定義
  • 包含主題、語言與通知設定型別安全的 state 介面
  • 在元件中使用 selector 模式以避免不必要的重新渲染
  • 使用 MMKV 或 AsyncStorage 設定儲存後端

安全審計

安全
v1 • 4/16/2026

This skill is a documentation-only reference guide for React Native and Expo development. It contains 12 markdown files (SKILL.md plus 11 reference files) with code examples. All 740 static analysis findings are false positives: the scanner misidentified markdown code blocks (triple-backtick fenced examples) as executable code. Patterns flagged include shell commands in installation instructions, relative imports shown as code examples, environment variable usage in documentation, and documentation references to .env files. No executable code exists in this skill.

12
已掃描檔案
3,050
分析行數
1
發現項
1
審計總數
審計者: claude

品質評分

45
架構
100
可維護性
87
內容
50
社群
100
安全
91
規範符合性

你能建構什麼

從零開始建立新 Expo 專案

開發者需要搭建一個具備完整專案結構、路由、狀態管理與 CI/CD 流程且可投入生產的 React Native 應用程式。

實現複雜動畫與手勢操作

開發者需要使用 Reanimated 3 與 Gesture Handler 加入流暢動畫、手勢處理與滾動驅動效果。

優化應用程式效能並準備上架

團隊需要對應用程式進行效能分析、修復滾動卡頓、減少 bundle 大小、設定 EAS 建置,以及建立 CI/CD 流程以上傳至 App Store 與 Play Store。

試試這些提示

初學者:建立新 Expo 專案
建立一個使用 TypeScript 的新 Expo 專案。包含 Expo Router 導航(tab 佈局)、FlashList 列表、expo-image 圖片處理,以及 Zustand 狀態管理。展示推薦的專案結構。
初學者:建構登入表單
使用 React Hook Form 與 Zod 驗證建立登入表單。包含帶有錯誤訊息的電子郵件與密碼欄位、帶有載入狀態的提交按鈕,以及整合 fetch 封裝的 API 呼叫。
中階:加入動畫轉場效果
使用 Reanimated 3 在列表頁面與詳細頁面之間實現共用元素轉場動畫。列表使用 FlashList 並搭配記憶化項目。點擊項目時,以淡入淡出與縮放動畫過渡到詳細頁面。
進階:設定 CI/CD 流程
使用 GitHub Actions 設定 EAS Build 與 Submit 流程。包含開發與生產環境的獨立建置設定檔、main 分支合併時自動提交至 App Store,以及不同階段的環境變數管理。

最佳實務

  • 列表一律使用 FlashList 而非 FlatList,圖片使用 expo-image 而非 RN Image,以獲得更好的效能與快取機制
  • 使用 Reanimated 時僅對 transform 與 opacity 屬性進行動畫,以保持動畫在 GPU 上合成並避免版面重新計算
  • 客戶端環境變數使用 EXPO_PUBLIC_ 前綴,伺服器專用機密則在 API 路由中不使用該前綴

避免

  • 在生產環境的列表與圖片畫廊中使用 FlatList 而未搭配記憶化項目,或使用未快取的 RN Image
  • 從 barrel 檔案(index.ts)匯入導致 bundle 體積增加——一律直接從原始模組匯入
  • 使用 Platform.OS 進行平台判斷而非 process.env.EXPO_OS,以及使用 useContext 而非 React 18 的 React.use

常見問題

什麼時候應該使用 Expo Go 而非使用 EAS Build 進行自訂建置?
使用 Expo Go 可快速進行原型開發與測試標準 Expo 模組。當專案需要自訂原生模組、特定原生 SDK 版本、Apple 目標,或 Expo Go 不支援的第三方模組時,請使用 EAS Build。
我應該為專案選擇哪套狀態管理函式庫?
區域 UI 狀態使用 useState 或 useReducer。跨元件共享的應用程式狀態選擇 Zustand 或 Jotai。伺服器與非同步資料搭配快取使用 React Query。除非應用程式有極為複雜的狀態需求,否則避免使用 Redux。
如何在 Expo 應用程式中安全地處理環境變數?
使用 EXPO_PUBLIC_ 前綴的變數會嵌入客戶端 bundle 中,適合公開設定如 API 網址。沒有前綴的變數(如 LLM_API_KEY)僅在伺服器端 API 路由中執行,不會傳送到客戶端。請透過 eas env-create 在 CI/CD 中設定生產環境機密。
為什麼此技能推薦使用 FlashList 而非 FlatList?
Shopify 開發的 FlashList 提供內建的視圖回收機制,可顯著降低記憶體使用量並防止長列表的滾動卡頓。FlatList 會渲染所有可見項目而未進行回收,導致超過 20 項的列表出現效能問題。
如何有效地測試 React Native 元件?
使用 Jest 搭配 React Native Testing Library 進行單元與元件測試。測試使用者可見的行為(文字內容、按鈕互動)而非實作細節。端對端測試請使用 Maestro,它不需要額外的建置設定且與 Expo 相容。
可擴展的 React Native 應用程式建議的專案結構為何?
將程式碼組織為:app/ 放置 Expo Router 路由、components/ui/ 放置原子元件、components/shared/ 放置組合元件、stores/ 放置狀態管理、services/ 放置 API 與原生模組封裝、hooks/ 放置自訂 hooks、constants/ 放置主題數值,以及 types/ 放置 TypeScript 型別定義。使用路徑別名以避免脆弱的相對路徑匯入。