concent服务于 react 的增强型状态管理方案
concent 是一个服务于 react,兼容 redux 生态的渐进式 & 高性能状态管理方案,基于依赖标记、引用收集和状态分发原理工作,通过独有的实例上下文机制增强组件能力,抹平类组件和函数组件的生命周期函数写法差异,内置 computed、watch、setup、event 等高级特性,让逻辑复用更优雅、组件表现形式更丰富、应用架构更稳健。
特性
- 极简的核心api,`run`载入模块配置启动concent,`register`注册组件,无需包一层`Provider`在根组件。
- 0入侵成本接入,不改造代码的情况下直接接入;[hello-concent](https://stackblitz.com/edit/cc-course-hello-concent-simple)
- 贴心的模块配置,除了`state`,还提供`reducer`、`computed`、`watch`和`init`四项可选定义。
- 灵活的数据消费粒度,支持跨多个模块场景,以及模块内stateKey级别的细粒度控制。
- 渐进式构建react应用,除了`setState`,支持`dispatch`、`invoke`调用来让ui视图与业务逻辑彻底解耦。[从class到function](https://stackblitz.com/edit/cc-multi-ways-to-wirte-code)
- 组件能力增强,支持实例级别`computed`、`watch`定义,支持`emit&on`,以及支持`setup`特性,让函数组件拥有定义静态api的能力。
- 高度一致的编程体验,`hoc`、`render props`和`hook`3种方式定义的组件均享有一致的api调用体验,相互切换代价为0。[多种方式定义组件](https://stackblitz.com/edit/cc-4-render-mode)
- 渲染性能出众,内置`renderKey`、`lazyDispatch`、`delayBroadcast`等特性,保证极速的渲染效率。[长列表精准渲染](https://stackblitz.com/edit/concent-render-key?file=BookItem.js)、[批处理状态提交](https://stackblitz.com/edit/concent-lazy-dispatch?file=runConcent.js)、[高频输入场景状态延迟分发](https://stackblitz.com/edit/concent-delay-broadcast)
- dom层级干净,对于class组件,默认采用反向继承策略,让react dom树的层级结构保持简洁与干净。
- 扩展中间件与插件,允许用户定义中间件拦截所有的数据变更提交记录,做额外处理,也可以自定义插件,接收运行时的发出的各种信号,按需增强concent自身的能力。
- 去中心化配置模块,除了`run`接口一次性配置模块,还提供`configure`接口在任意地方动态配置模块。
模块克隆,支持对已定义模块进行克隆,满足你高维度抽象的需要。
评论