| Pagination 分頁(單一列表) | Props/Emit | 局部狀態、父 → 子顯示、子 → 父回報頁碼。若多個列表需要同步頁碼或路由同步 ?page=,可升級為 Pinia 或使用路由參數。 |
| Modal / Dialog | Props/Emit | :open + @close。若跨頁面任意地方都要能開相同 Modal(例如全域快捷鍵開啟),→ Pinia(或事件總線)。 |
| Drawer / Sidebar 開闔 | Props/Emit | 單頁使用就局部。若全站統一開闔狀態(如響應式 Layout),→ Pinia(uiStore)。 |
| Tabs(同頁切換) | Props/Emit | 純展示/切換。若Tab 選擇需跨多個元件或記住離開再回來,→ Pinia 或路由。 |
| Form 表單值 | Props/Emit | 典型是父持有狀態、子輸入元件用 v-model。若表單在多步驟頁面(Wizard)間共享/暫存,→ Pinia(formStore)。 |
| Toast / Notification | Pinia | 全域跨頁顯示、多處觸發;在 actions 內集中新增/移除訊息。 |
| User / Auth 狀態 | Pinia | 全域共用、頁面常駐(token、使用者 info、權限)。 |
| Theme / Locale(深色模式、語系) | Pinia | 全域設定、需持久化(建議搭配 persistedstate)。 |
| Breadcrumb / Header 顯示資料 | 視需求 | 若來源在當前頁,用 Props;若需跨頁同步(依路由/權限),→ Pinia 或由路由計算。 |
| 搜尋條件(Filter)(單頁) | Props/Emit | 局部即可。若跨多個列表/頁面共用同一組條件,→ Pinia。 |
| 表格勾選多筆(僅本頁) | Props/Emit | 父持有、子 emit。若跨分頁/跨區域共用勾選結果,→ Pinia。 |
| 多列表共用資料來源 | Pinia | 在 actions 內做 API + 快取,避免重複請求。 |
| 路由層級的 UI 狀態(例如 keep-alive 的頁碼、展開狀態) | Pinia 或路由參數 | 需返回時保留狀態 → Pinia;可序列化到網址 → 路由參數更好。 |
| Loading / Global Overlay | Pinia | 多個 |