Files
skt-vuetify-templates/src/stores/GUIDE.md
T
skytek_xinliang 915f3b7f2f fix: abort機制
2026-06-01 14:50:47 +08:00

31 lines
1.0 KiB
Markdown

# Stores Guide
`stores` 使用 Pinia 管理跨頁共享狀態、快取與全域顯示狀態。單一頁面暫時 UI 狀態應留在 page driver、component 或 composable。
## 放進 Store 的情況
- auth/session
- menu/favorites/breadcrumbs
- snackbar/messages
- 跨頁共享資料快取
- 多個頁面都需要讀寫的 domain state
## 不放進 Store 的情況
- dialog visible
- 單一頁搜尋條件
- 單一頁分頁狀態
- 單一表單 dirty / validation
- 單一頁 loading/error
## 資料流
store 可以呼叫 service module。component 不應繞過 store/composable 直接處理 token、session 或 HTTP hooks。
## 請求取消慣例
- 需要避免重複提交或快速切換造成的舊請求殘留時,在 store 層管理 `AbortController`
- 同一類請求使用固定 key(例如 `auth/login``menu/get-menu`),新請求前先取消舊請求。
- service module 只接收 `signal`,不管理 controller lifecycle。
- store 在 `finally` 清理該 key,在 `clear/logout` 清理全部 key。