- [bug] 已修复 reducer.update 方法中当 state 为 undefined 时, 外部 store state 与 agent state 不同步的问题。
- [bug] 使用常规 debounce 代码修复原
MiddleWares.takeDebounce
因事件堆积导致的不稳定问题。 - [bug] 修复了
globalConfig
在无法获取到window,global,self
情况下报错的问题。 - [feature] 新增
nextExperience
下一版本体验特性,并在env
中增加了相应开启配置项。MiddleWare
的覆盖优先级将在nextExperience
环境中变更为:useMiddleWare
->middleWare
->createAgentReducer
。 - [document] 更改了文档结构以方便分步阅读。
- [document] 新增了英文文档。
- [unit test] 根据文档变更,新增了中英文分离的单元测试案例。
- [bug] 修复 api useMiddleWare 复用了 api createAgentReducer 的 MiddleWare 的问题。
- [design] 在过去, applyMiddleWares 使用的是方法级统一的缓存 cache , 这使得 MiddleWare 的缓存之间可能存在缓存数据共享问题,自当前版本开始 applyMiddleWares 会为每个 MiddleWare 开辟了独立的缓存空间 cache , 各个 MiddleWare 之间将不再有缓存共享问题。
- [design]
MiddleWares.takeNone()
作为当前版本新加入的 MiddleWare 可以阻止任何 state 改变。 - [feature]
MiddleWare
的覆盖优先级已经变更为:useMiddleWare
->middleWare
->createAgentReducer
。 - [feature] 使用相同实例模型的
Agent
代理对象之间数据更新同步。
- [bug] 解决
use-agent-reducer
同步更新数据时, react throw error:Cannot update a component (
xxx) while rendering a different component (
xxx)
- [bug] 解决
use-agent-reducer
同步更新数据时, react throw error:Cannot update a component (
xxx) while rendering a different component (
xxx)
- [api] 新增接口
sharing
用于生成持久化模型. - [api] 新增接口
weakSharing
用于生成弱持久化模型
- [compile] 编译新增目录
es
,直接使用import {...} from 'agent-reducer/es'
对减包由帮助,详情清见 。
- [compile] 进一步减小
es
目录内容。
- [bug] 解决使用模型共享时,过期reducer依然可以修改state的问题。
- [bug] 解决 notify 在 updateBy:'auto'时,死循环问题
- [refactor] 重构
agent.ts
和reducer.ts
.
- [bug] 修复中间变量为 undefined 引起的
NPE
问题.
- [refactor] 再次重构
agent.ts
和reducer.ts
.
- [design] 采取了 redux state 数据变更策略,先改变数据后通知渲染。
- [design] 模型共享时,模型方法级
middleWare
特性和状态也共享。
- [bug] 修正 v3.6.0, weakSharing 不能共享middleWare缓存的问题。
- [bug] 修正 state 更新回流问题,采用 redux 更新策略后, state 不能回流更新。
- [bug] 修正关于通知类 action 修改 state ,导致 state 回滚的问题。
- [design] 在 weakSharing 模式下,除非所有共享代理全部销毁,否则就可以更改模型的 state,但外部 state 更新依旧依赖于当前 agent 是否被销毁。
- [design] weakSharing API 返回对象属性中增加了 initial 回调。
- [design] weakSharing 的 current 初始化将发生在第一次重新使用它的时候。
- [design] 在 reducer function 属性中添加 reconnect 方法,用于重连已经被 destroy 的 agent-reducer。
- [design] 对 api
sharing
返回对象添加initial
方法。 - [update] 准备
agent-reducer@4.0.0
- [bug] 修复关于 package.json 中关于
module
的配置问题,最终决定在4.0.0中使用该属性。
- [bug] 修复关于
MiddleWarePresets.takeLatest
在遇见 Promise reject 时,产生两个 rejection 的问题
- [optimize] 优化掉关于
warningSet
的代码。
- [optimize] 优化 state 变更处理过程
- [design] 去掉了 bad design
- [design] 修改了部分接口命名
- [design] 对部分接口进行了简化处理
- [document] 采用了 docs 文档功能
- [optimize] 优化了编译结构,使得 windows 系统也可以安全使用优化编译方式,减小手动编译体积。具体操作可参阅安装 。
- [optimize] MiddleWare 中 promise 相关处理不再依赖
ES6 Promise
API。
- [bug] 修复 4.0.1 编译优化导致模块无法找到的 bug 。