npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@czwcode/rdx-plugins

v0.0.4

Published

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

Downloads

1

Readme

用处

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

如何使用

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. 任务是否按照依赖关系正常执行