快速上手
https://github.com/stkevintan/ServiceX
ServiceX是一个Typescript Project Only的基于React hooks api之上的轻量级状态管理工具,主要的特点和解决的痛点有:
灵活多store:可以自由粒度的定义store,避免了redux在大项目中单一store越来越庞大的问题,并且提供一套强大的依赖注入功能来管理store
严格ts类型:项目本身有严格ts编写,同时对外接口处处都有TS类型推断,再也不用担心redux中action type拼错或者payload类型不兼容等隐形bug,同时更容易进行代码定位。
强大的rxjs集成:所有副作用都是通过rxjs进行描述和管理,与redux-saga相比,rxjs更通用,更强大,ts类型提示和约束做的更好。
安装
npm i service-x immer inversify reflect-metadata rxjs使用
开启ts中的编译flag:
编辑tsconfig.json中的complerOptions:
{
"compilerOptions": {
"strict": true, // 严格模式,建议开启
"emitDecoratorMetadata": true, // 开启metadata支持
"experimentalDecorators": true, // 开启decorator支持
//...
}
}
第一个Service
service代表了一个store,其中定义了store的state以及与redux概念相似的reducer, effect等action:
与React结合
一个简单的人名搜索应用就OK啦,这里有一个更加高级的在线示例:
Last updated
Was this helpful?