简介
Redux 是一种 JavaScript 应用程序状态容器,用于管理 React 等视图库的状态。但 Redux 改变一个状态的过程繁琐、重复,因此有了 redux-create-actions 这个 npm 包:
redux-create-actions 将简化 Redux 应用程序的开发,因为它为 Redux 应用程序生成标准化的操作程序。在这篇文章中,我们将学习如何使用 npm 包 redux-create-actions。
安装
我们可以用以下命令安装 redux-create-actions:
npm install redux-create-actions --save
用法
redux-create-actions 可以跟踪一些事件、从处理程序中收集 Action 数据并将其发送给 Redux Store,从而简化应用程序的开发。那么,让我们来看看如何在我们的项目中使用它。
首先,我们需要引入 redux-create-actions 和 redux Thunk。这里有一个示例:
import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; import { createActionsMiddleware } from 'redux-create-actions'; const store = createStore( reducer, applyMiddleware(thunk, createActionsMiddleware()) );
此处 createActionsMiddleware()
作为中间件被注入到 createStore 的 applyMiddleware 方法中,用于监听 Action。
然后,在我们的代码中,我们需要创建一个 action,像下面这样:
-- -------------------- ---- ------- ----- ------- - ------------------------- ----- --------- - -- -- - ------ -------- -- - ---------------------------- ------------------------------------------------------ -- - ----------------------------------------- ----------- -- - -------------------------------- -- ----- -------- --- -- --
其中,createAction
的参数是为此操作创建的名称字符串。
接下来,我们定义一个 reducer,处理这个 action:
-- -------------------- ---- ------- ------ - ------------- - ---- ----------------------- ----- ------------ - - --------- ------ ----- ---- -- ------ ------- --------------------------- - ------------------ ------- ------- -- -- --------- --------- ---- --- ------------------ ------- ------- -- -- --------- --------- ------ ----- -------------- --- ------------------ ------- ------- -- -- --------- --------- ------ ------ -------------- -- ---
总结
在本文中,我们学习了如何使用 redux-create-actions 简化 Redux 应用程序的开发。我们安装并将其注入到 createStore 中作为中间件,然后创建 action 和 reducer。
使用 redux-create-actions,我们可以消除重复的代码,并得到更好的代码结构。希望这篇文章给你带来了帮助。
示例代码
-- -------------------- ---- ------- -- -------- ------ - ------------ --------------- - ---- -------- ------ ----- ---- -------------- ------ - ----------------------- - ---- ----------------------- ------ ----------- ---- ------------- ----- ----- - ------------ ------------ ---------------------- -------------------------- -- ------ ------- ------ -- ---------- ------ - ------------ - ---- ----------------------- ------ ----- ---- -------- ----- ------- - ------------------------- ----- --------- - -- -- - ------ -------- -- - ---------------------------- ------------------------------------------------------ -- - ----------------------------------------- ----------- -- - -------------------------------- -- ----- -------- --- -- -- ------ - --------- -- -- ----------- ------ - ------------- - ---- ----------------------- ------ - ------- - ---- ------------ ----- ------------ - - --------- ------ ----- ----- ------ ---- -- ----- ----------- - --------------------------- - ------------------ ------- ------- -- -- --------- --------- ---- --- ------------------ ------- ------- -- -- --------- --------- ------ ----- -------------- --- ------------------ ------- ------- -- -- --------- --------- ------ ------ -------------- -- --- ------ ------- ------------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067007e361a36e0bce8a9d