# 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。