Skip to content
阅读进度

如何理解Effect 清理、请求乱序与页面恢复? ​

返回 架构与 SDK 目录

标准回答 ​

Effect 适合与外部系统同步,例如订阅、网络或定时器。依赖变化时需要清理旧同步并建立新同步,组件卸载时也要释放资源。开发环境的 Strict Mode 额外检查有助于暴露清理不完整,不能用禁用检查掩盖问题。

用户先查 A 再查 B,A 的响应可能更晚到达。取消旧请求能减少浪费,但仍需请求代次或结果归属检查,确保 A 不覆盖 B。加载与错误状态同样绑定代次,否则旧请求的 finally 可能关闭新请求的加载提示。

服务端渲染与客户端水合还要求初始内容一致。时间、随机值、浏览器存储和语言选择若在两端产生不同初值,可能形成水合差异。明确初始数据来源,客户端专属行为放在适当阶段,而非在渲染中无约束读取环境。

追问与回答 ​

空依赖数组是不是永远只运行一次 ​

它表达不随响应式依赖重新同步,但开发检查、卸载后重新挂载等仍会发生;资源管理必须能承受建立、清理、再建立。

为什么列表状态换位 ​

检查 key 是否稳定代表业务对象,索引 key 在插入删除时可能让组件状态绑定到错误对象。

易混淆点 ​

  • 仅取消网络请求,却不保护晚到的状态更新。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。