@ exodus/ modular- redux
目录
概览
Redux Store 增强器支持 Redux上方的构建模块化特性.
通过Modular Redux,每个Redux模块负责在商店注册,而不是相反. 这意味着不需要导出一个还原器函数(保留这些 Redux 特定的概念). 这也使每个模块能够与不止一个状态"切片"一起工作.
安装
pnpm add @exodus/modular-redux
快开始
import modularRedux from '@exodus/modular-redux'
import { createStore, applyMiddleware } from 'redux'
const initialState = {}
const middleware = [
/* ... middlewares */
]
const enhancers = compose(modularRedux, applyMiddleware(...middleware))
const store = createStore(reducers, initialState, enhancers)
依赖关系
Redux模块依赖于所有超出模块范围的东西的注射依赖. 例如,如果一个特定的模块需要地理定位数据,通过这个模块作为模块依赖性,而不是内部处理,可能比较明智. 特别是如果它的工作方式取决于目标应用(我们在移动中获得地理定位的方法可能不同于桌面). 这样,我们就可以开始建造小型的,可测试的和可堆肥的模块, 我们可以在整个特性中重新使用.
增强存储 API
store.injectReducer(name, reducer)
注册一个新的 Redux 状态切片 .
参数
| 名称 | 说明 |
|---|---|
| 名称 | 名为Redux切片。 这将在全球Redux状态中用作状态密钥 |
| 减少 | 裁剪函数,它决定寄存器切片状态如何变异 |
用户界面
UTI 函数导出自 @exodus/modular-redux 将不同的逻辑块绑入 Redux 仓库
bindActionCreators(store, actions, deps, onError)
环绕 redux.bindActionCreators 将动作创建者绑定在存储和模块的依赖性上
参数
| 名称 | 说明 |
|---|---|
| 存储 | Redux 仓库 |
| 动作 | 模块动作创建者对象,每个对象的形式为: (deps) => action |
| 代码 | 模块依赖性。 见 依赖关系 用于模式细节. |
| 错误 | 处理错误函数 。 每次行动出事时都打电话. 可选 |
回返
绑定动作对象, 您可以从模块返回并直接调用以发送事件
bindHooks(store, hooks, deps)
将函数绑入状态变化 .
参数
| 名称 | 说明 |
|---|---|
| 存储 | Redux 仓库 |
| 钩子 | 钩子定义对象的形式 { email: [emailSelector, hookFn] } |
| 代码 | 模块依赖性。 见 依赖关系 用于模式细节. |
bindSelectors(store, selectors)
将选择器功能转换为声明式API,以从Redux切片中读取数据.
这是一个实验性API。 出于相容性和其他相容性原因,选择器仍应从每个模块导出
参数
| 名称 | 说明 |
|---|---|
| 存储 | Redux 仓库 |
| 选择器 | 模块选择器函数对象 。 ex. (英语). { getBalaceSelector: (state) => state.balance } |
回返
选择者 API. 所提供对象上的每个选择项都作为获取函数返回。 ex. (英语). { getBalaceSelector: (state) => state.balance } - > (中文) { getBalace: () => balance }