1. 简介
tidee-simplux 是一款基于 Redux 的简洁易用的状态管理库。与 Redux 相比,tidee-simplux 有以下特点:
- 更加简洁易用:相较于 Redux 的冗长代码,tidee-simplux 的代码更加简单,易于上手。
- 更加便捷的调试:tidee-simplux 支持自动注册 Redux DevTools,可方便快捷地进行调试。
- 更加灵活的异步操作:tidee-simplux 支持更加灵活的异步操作和副作用管理。
2. 安装和基础用法
2.1 安装
使用下面的命令可以安装 tidee-simplux:
npm install tidee-simplux
2.2 基础用法
tidee-simplux 的核心是 Model,每个 Model 包含一些状态 state 和一些操作 mutators。
以下是一个简单的例子:
-- -------------------- ---- ------- ------ - ----------- - ---- ---------------- ----- ------- - ------------- ------ - ------ -- -- --------- - ---------------- - -------------- -- ---------------- - -------------- -- -- --- ------ ------- --------
在上面的代码中,我们首先使用 createModel
创建了一个 Model,该 Model 包含了一个状态 count 和两个操作 increment 和 decrement。我们可以通过 useSelector
来获取状态,通过 dispatch
来调用操作:
-- -------------------- ---- ------- ------ - ------------ ----------- - ---- ---------------- ------ ------- ---- ------------------- -------- --------- - ----- ----- - -------------------- ----- -- ------------- ----- -------- - --------------------- ------ - ----- --------- ----------- ------- ----------- -- --------------------------------- ------- ----------- -- --------------------------------- ------ -- - ------ ------- --------
在上面的代码中,我们使用 useSelector
获取了 count 状态,使用 useDispatch
获取了 dispatch 函数,然后在组件中使用它们。
3. 异步操作和副作用管理
在前面的例子中,我们只演示了基本的同步操作。但在实际项目中,我们常常需要处理异步操作和副作用。tidee-simplux 提供了异步操作支持,例如:
-- -------------------- ---- ------- - ------ - ------ -- -- --------- - ----- --------------------- - -------------- -- -- -------- - ----- ---------------- - ----- --- --------------- -- ------------------- ------- ------------------------------ -- -- -
在上面的代码中,我们定义了一个异步操作 incrementAsync,需要经过 1s 后才能完成操作,使用一个 effect 实现。effect 中可以对异步操作进行处理,使用 commit 函数来调用操作。
需要注意的是,如果我们使用 effect 来调用异步函数,我们需要把函数传递到模型构造函数中:
-- -------------------- ---- ------- ----- ----- - ------------- ------ - --- -- --------- - --- -- -------- - ----- ------------------- - --- -- -- -- - ------------------ ----- -------- -------- -- - ----- ------ - ----- --------------------------------------- ------ ------- -- ---
上面的代码中,我们将一个异步函数传递给了模型的构造函数,然后在 effect 中使用 callAsyncFn
调用它。需要注意的是,我们必须通过该函数的 payload
属性来传递函数本身,因为 tidee-simplux 支持通过 callAsync
调用异步函数并向其传递参数:
dispatch(someModel.actions.someAction, { foo: 'bar' }); // someModel.actions.someAction({ foo: 'bar' }); await dispatch(callAsync(someModel, someModel.effects.someEffect, { foo: 'bar' })); // someModel.effects.someEffect({ foo: 'bar' });
4. 总结
tidee-simplux 是一款基于 Redux 的简洁易用的状态管理库,具有更加简洁易用、便捷调试和灵活异步操作等特点。在使用时,需要定义 Model 和相应的操作,使用 useSelector
和 useDispatch
来获取状态和调用操作,可以方便地进行状态管理。
在实际项目中,如果需要处理异步操作和副作用,可以使用 tidee-simplux 的 effect,方便地进行操作和管理。
5. 示例代码
一个完整的使用案例可参考 tidee-simplux-react-starter 示例项目。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055bd181e8991b448d96f7