前端状态
流程
- 对每个值进行分类:持久化服务器数据、可共享的URL/导航状态、表单草稿或临时展示状态。选择一个权威的所有者。
- 重用已安装的状态/数据获取工具。将本地状态保持在其消费者附近;仅在存在具体的协调需求时引入共享状态。
- 根据所有查询和授权维度对服务器缓存进行键控。在登出、租户切换和身份变更时清除或隔离它们。
- 显式建模加载、空、错误和成功状态。对于并发请求,取消可以减少工作量,但也要防护结果接受,以便旧响应不能替换新意图。
- 对于乐观更新,与服务器协调并定义失败行为。回滚不得擦除新的成功变更;追踪操作或使用库支持的并发模式。
- 验证前进/后退导航、重试、快速输入变更、失败变更和账户切换。
示例
搜索A后搜索B,B先返回而A后返回。显示的结果保持为B,URL反映当前搜索而非响应完成顺序。
停止条件
不要为解决本地竞态而替换状态库。将相同的服务器值重复复制到独立的全局存储中会产生同步义务。
证据
- 状态所有权映射和缓存键。
- 竞态/回滚/会话切换检查。
- 可见的加载和恢复行为。
参考
在参考react-state-management后独立编写的工作流。