小程序開發 lib 選型

awesome-wechat-weapp 裡挑出對戶外探險小程序最相關的 lib。最小依賴 + 最大實用——3 個 dep + 1 個 devDep 起步。

設計原則

戶外探險小程序的 lib 選型有 3 個約束:

  1. 最小 surface 過審:微信小程序審核對 lib 來源敏感,越少 dep 越好
  2. 離線優先:選的 lib 不能假設網路恆在(多日離線行程設計
  3. 電量友好:不能背景持續耗電(戶外探險旅遊小程序的挑戰 維度 2)

起步 dependencies

{
  "dependencies": {
    "@vant/weapp": "^1.10.0",
    "wenaox": "latest",
    "we-cropper": "latest"
  },
  "devDependencies": {
    "minapp-vscode": "latest"
  }
}

3 個生產 dep,分別對應 UI / 狀態 / 影像三個維度。

8 + 7 個功能對應 lib

戶外探險旅遊小程序核心功能清單 的 15 項功能:

#Feature推薦 lib為什麼
1出團列表 + 行程詳情Vant WeappList / Card 組件
2行前 Q&AVant Weapp Form / CollapseFAQ + 私訊入口
3報名 + 微信支付原生 wx.requestPayment()不用 lib
4行前確認流程Vant Weapp Stepper / Form5 步表單
5行程公告原生 wx.subscribeMessage()一次性訂閱訊息,配 wenaox 離線狀態管理 cache
6領隊資歷頁Vant Weapp Card標準展示
7SOS(離線)原生 + wenaox 離線狀態管理outbox queue 模式
8離線地圖 + 軌跡原生 wx.openLocation() + wenaox 離線狀態管理軌跡寫本地時序 buffer
9活動相簿we-cropper 圖片裁切上傳 + Canvas 壓縮上傳前壓 + 裁
10團員簽到原生 wx.scanCode()QR Code 掃描
11裝備清單Vant Weapp Checkbox簡單 list
12天氣整合第三方 API(自己接)沒 lib,呼叫和風天氣等
13費用分擔Vant Weapp Formv3 才做
14過往團員社群v3 才做
15保險方案整合商業合作,無 lib

3 個 lib 涵蓋 11/15 功能。剩下 4 個用原生 API 或第三方服務。

框架層的選擇

微信小程序框架選擇 決策維持「原生為主」,加 Vant Weapp 作為 UI 層。完整對照:

選什麼用途
框架原生(WXML/WXSS/JS)應用骨架
UI 組件Vant Weapp70+ 組件,過審友善
狀態管理wenaox 離線狀態管理offline outbox queue
影像處理we-cropper 圖片裁切上傳 + Canvas(原生)裁 + 壓
開發工具微信開發者工具 + 小程序開發工具鏈IDE + debugger

不選 / 跳過的

Lib / Framework為什麼不選
uni-app / Taro跨端框架,戶外專案只做小程序不需要
mpvue已停止維護
chameleon / kbone / Remax過度設計
redux / mobx 直接用對小程序太重,wenaox 離線狀態管理 更輕
任何 2019 後沒更新的 repo兼容性風險

投資時序

階段加哪些 lib
MVP(v1)Vant Weapp + 原生 API(不需 wenaox / we-cropper)
v2 補強+ wenaox 離線狀態管理(做離線地圖、SOS、相簿)
v2 影像+ we-cropper 圖片裁切上傳(活動相簿)
v3 進階視需求加(如即時聊天 webview、AI Q&A 推薦)

→ MVP 階段不投資任何離線 lib——驗證商業模式優先,技術深度 v2 再做。

戶外探險旅遊小程序的挑戰 的對應

挑戰對應的 lib 解法
訊號(多日離線)wenaox 離線狀態管理 的 outbox queue
電量(GPS / 推送)原生 API + 不背景輪詢
安全(SOS / 緊急)原生 + outbox 寫本地
法律(同意書離線)Vant Weapp Form + 本地 cache
信任(內容呈現)Vant Weapp Card + we-cropper 圖片裁切上傳

業界範例 repo(抄作業)

Repo用途
imageslr/weapp-library30+ 頁完整範例 + mock server
WeTravel景點預約模板,騰訊雲開發

相關概念

強連結(hub 指各 lib entity)

強連結(戶外探險專屬)

深入閱讀(外部資源)

← 回到 wiki