前端狀態
流程
- 分類每個值:持久化伺服器資料、可共享的 URL/導航狀態、表單草稿,或暫時性的呈現狀態。為每個值選擇一個權威的擁有者。
- 重複使用已安裝的狀態/資料擷取工具。將本地狀態保持在它的消費者附近;只有在需要具體協調時才引入共享狀態。
- 根據所有查詢和授權維度來鍵入伺服器快取。在登出、租戶切換和身分變更時清除或隔離它們。
- 明確建模載入、空、錯誤和成功狀態。對於並行請求,取消可以減少工作量,但也應保護結果接受邏輯,使舊回應不能取代新意圖。
- 對於樂觀變更,與伺服器協調並定義失敗行為。回滾不得抹掉後續成功的變更;追蹤操作或使用函式庫支援的並行模式。
- 驗證前進/後退導航、重試、快速輸入變更、失敗的變更操作和帳戶切換。
範例
搜尋 A 然後搜尋 B,B 先返回而 A 後返回。顯示的結果保持為 B,URL 反映的是當前搜尋而非回應完成的順序。
停止條件
不要為了解決局部競態而更換狀態庫。將同一個伺服器值複製到多個獨立的全域 Store 中會造成同步責任。
證據
- 狀態所有權圖和快取鍵。
- 競態/回滾/會話轉換檢查。
- 可見的載入和復原行為。
參考
此工作流程是在審閱 react-state-management 後獨立撰寫的。