什么是 redux-runner
redux-runner 是一个帮助开发者管理 Redux 异步操作的工具,它可以将 Redux 异步操作逻辑与 UI 组件完全分离,让开发者能够更加简单、精确地管理异步操作的流程。
如何使用 redux-runner
安装
使用 npm 安装 redux-runner:
--- ------- ------------ ------
在项目中使用
编写异步操作逻辑
在 redux-runner 中,异步操作逻辑需要被抽象成一个 runner。一个 runner 是一个普通的 JavaScript 对象,它至少需要包含两个属性:types
和 run
。
types
用来定义 runner 所处理的异步操作的类型,它是一个字符串数组,例如:
----- ----- - ---------------------- --------------------- ----------------------
这里定义了三个异步操作类型:FETCH_USER_REQUEST
、FETCH_USER_SUCCESS
和 FETCH_USER_FAILURE
。
run
是 runner 所要处理的异步操作逻辑,它是一个函数,例如:
----- --------- - ---------- -- ----- ---------- -- - ---------- ----- -------------------- --- --- - ----- ---- - ----- ------------------------------------------------------------ -- ------------ ---------- ----- --------------------- -------- ---- --- - ----- ------- - ---------- ----- --------------------- -------- ------------- --- - -- ----- ------ - - ------ ---------------------- --------------------- ---------------------- ---- --------- --
这里定义了一个 runner,它处理的是名为 fetchUser
的异步操作。这个异步操作会向 GitHub API 发送一个请求,获取指定用户的信息,并返回一个 Promise。
配置 Redux Store
在配置 Redux Store 时,需要将 redux-runner 中提供的 middleware 添加到 Store 的 middleware 链中:
------ - ------------ --------------- - ---- -------- ------ - ---------------- - ---- --------------- ------ ----------- ---- ------------- ----- ----- - ------------------------ -----------------------------------
在 UI 组件中使用
然后,在 UI 组件中,可以使用 connect
函数将 component 和 runner 注入到 props 中:
------ ------ - --------- - ---- -------- ------ - ------- - ---- -------------- ------ - ------ - ---- --------------- ----- ---- ------- --------- - ------------------- - ----- - --------- -------- - - ----------- ---------------------------- ----------- - -------- - ----- - ----- ------ ------- - - ----------- -- --------- - ------ ---------------------- - -- ------- - ------ ------------------- - ------ - ----- --------------------- ---- --------------------- ---------------- -- ------ -- - - ----- --------------- - ------- -- - ----- - ----- -------- ----- - - ---------------- ------ - ----- ----- -------- ----- -- -- ------ ------- ----------------------------------------------------
这里是一个 React component 的例子。它使用 connect
函数将 component 和 runner 注入到 props 中,并在 componentDidMount
生命周期中调用了 runner 函数。
在 mapStateToProps
函数中,可以从 Store 中获取 fetchUser
的状态,并将它们映射到 component 的 props 中。
总结
通过 redux-runner,开发者可以更加简单、精确地管理异步操作的流程。它可以将 Redux 异步操作逻辑与 UI 组件完全分离,并通过 runner 中定义的 types
和 run
属性来管理异步操作的流程。在使用 redux-runner 时,需要在配置 Redux Store 时添加 middleware,并使用 connect
函数将 component 和 runner 注入到 props 中。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600562de81e8991b448e0578