0.0.4 • Published 4 years ago

@czwcode/rdx-plugins v0.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

用处

  • 通过提供组件的任务流管理器,定向更新组件内容
  • 减少重复渲染
  • 避免任务重复执行
  • 避免由于请求返回时间的不确定性,导致展示数据出现问题
  • 记录所有当前节点的运行状态,避免用户进行过多无用的操作

如何使用

feature

  • taskItem 组件更新
  • 循环依赖的调度(保证运行时不成闭环)
  • 阻塞第一次渲染,渲染统一由 context 管控

2.x 功能迭代

  • 在 1.0 的版本基础上,新增调度中心的概念,调度中心可以统一管理默认值的数据,并检查是否要发起新的请求
  • 通过 forceUpdate & shouldComponentUpdate 的组合方式强管控下层组件的渲染逻辑,
  • ReactFieldContext 新增了两个新的参数, value & state, 并新增了两个校验方法,用来对每一个调度是否触发进行判断
  • immer 变为必须的依赖,通过 immer 可以很好的通过 shallowEqual 的方式校验调度的更新

功能设计

  • context 共享中心
    • 状态
    • 任务信息
    • 节点数据
    • 节点状态
      • 节点当前运行装填
      • 节点运行失败的错误信息
      • cancelMap 取消队列
    • Action
      • 新增
      • 更新
      • 删除
  • 任务调度中心
    • 单个任务执行 单个组件内部数据发生改变
    • 多任务执行 共享中心派发
    • dfs 任务执行 初始化任务执行
  • 生命周期
    • 初始化阶段
      • init 初始化
      • beforeExecute
      • execute
      • onPreChange
      • onChange
      • onError
    • 更新阶段
      • 更新阶段初始化状态
      • beforeExecute
      • execute
      • onPreChange
      • onChange
      • onError
    • taskInfo 更新
    • addTask 新增的任务节点,会触发任务的节点的任务执行
    • removeTask 移除任务节点,会触发所有依赖此节点的任务重新执行
    • 刷新
  • 群组任务(分为两个状态: 控制下游群组的状态 | 不控制下游群组的状态)
    • 下游节点状态更新
    • 下游节点状态不更新

问题

当新增节点的时候,后续新增的节点的 dispatch 状态会晚于 useEffect

冒烟逻辑测试

  1. 任务调度是否正常执行, 调度状态是否正常
  2. 组件接受的数据是否和 state 中的数据状态保持一致
  3. 任务新增是否用重新刷新
  4. 组件移除,依赖组件是否刷新
  5. 任务属性更新是否会刷新
  6. 任务是否按照依赖关系正常执行