CyanX 基于ReactHook的状态管理器,遵循函数式编程的理念,极简、可扩展设计哲学,1分钟上手
CyanX
- 极简,1分钟上手,两行代码
- 无限层级叠加,告别组件之间复杂的传值
- 极低的内存消耗,数据按需加载,组件所需的状态值变化时,才会重新渲染
- 基于ReactHook,仅支持React函数式组件开发
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KFbntbYc-1597115377927)(README_files/1.png)]
- npm
$ npm install cyanx
- yarn
$ yarn add cyanx
存放的数据类型
- 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol
- 引用数据类型:对象(Object)、数组(Array)、函数(Function)
- 函数方法
withCyanxObserver(component, publicStoreName, publicStoreDefaultValues)是一个高阶组件HOC,有3个参数
| 参数名 | 是否必填 | 说明 |
|---|---|---|
| component | *必填 | 需转化为观察者的组件 |
| publicStoreName | *必填 | 需观察公用仓库的名称 |
| publicStoreDefaultValues | *必填 | 公用仓库的默认值 |
withCyanxObservable(component, publicStoreName, stateKeyArray)是一个高阶组件HOC,有3个参数
| 参数名 | 是否必填 | 说明 |
|---|---|---|
| component | *必填 | 需转化为可观察的组件 |
| publicStoreName | *必填 | 需引入的公用仓库的名称 |
| stateKeyArray | 选填 | 组件需引用的公用仓库中状态的Key名称,引入的state会直接存入可观察组件的props中 |
特征
-
每一个公用仓库都会有唯一一个dispatch函数
-
dispatch会存在可观察组件的props中,函数名为
${公用仓库的名称}Dispatch;或可观察组件的props中的名为${公用仓库的名称}的对象。此中有dispatch的元素
例子:有一个公用仓库publicStore,可观察组件C观察了公用仓库publicStore;可观察组件C获取公用仓库publicStore的dispatch可以通过一下两种方式拿到:props.publicStoreDispatch
||props.publicStore.dispatch -
dispatch改变状态的规则,同React中的setState()函数
// 公用仓库的名称
const PublicStoreName = 'publicStore';// 公用仓库的名称,自己定义
// 公用仓库默认值
const publicStoreDefaultValues = {
a: 1,
b: {},
c: ()=>{},
}
import { withCyanxObserver } from 'cyanx';// 引入观察者HOC
// 观察者组件
const ComponentObserver = () => {
...
return (
<>
<ComponentObservable />
</>
)
}
export default withCyanxObserver(ComponentObserver, PublicStoreName, publicStoreDefaultValues);
import { withCyanxObservable } from 'cyanx';// 引入可观察的HOC
// 观察者组件
const ComponentObservable = ({a, b, c, publicStoreDispatch, ...props}) => {...}
||
const ComponentObservable = (props) => {
const {a, b, c, dispatch} = props.publicStore;
}
export default withCyanxObservable(ComponentObservable, PublicStoreName, ['a', 'b', 'c']);
Copyright © 2020-present, Bholder CY
浙公网安备 33010602011771号