1.0 KiB
1.0 KiB
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。