Redux 升级到 4.0:使用 createSlice 和 Redux Toolkit

阅读时长 6 分钟读完

在前端开发中,Redux 是最常用的状态管理库之一。那么,在 Redux 4.0 中新增的 createSliceRedux Toolkit 到底是什么,有什么作用呢?

createSlice 是什么?

createSlice 是 Redux 4.0 中新增的函数,用于创建 Redux store 中的 slice(切片)。slice 可以理解为一个小的 Redux store 子树,包含了相关的 reducer、action 和 selector。

createSlice 函数接收一个配置对象,包含了 nameinitialStatereducers 等字段,用于生成一个包含了 reducer、action 和 selector 的 slice。示例代码如下:

-- -------------------- ---- -------
------ - ----------- - ---- ------------------

-- -- ------- -----
----- ------------ - - ------ - -

-- -- -----
----- ------------ - -------------
  ----- ----------
  -------------
  --------- -
    ---------- ----- -- -
      -------------
    --
    ---------- ----- -- -
      -------------
    --
  --
--

-- -- ------- - ------
------ ----- - ---------- --------- - - --------------------
------ ------- --------------------
展开代码

在上面的代码中,我们使用 createSlice 创建了一个名为 counterslice,包含了 incrementdecrement 两个 reducer,以及 incrementdecrement 两个 action。

Redux Toolkit 是什么?

createSlice 一起推出的 Redux Toolkit 是一个包含了 Redux 相关工具函数的库,可以帮助我们更好地使用 Redux,提高开发效率。

Redux Toolkit 目前包含了以下几个函数:

  • createSlice:用于创建 slice
  • createAction:用于创建一个 action。
  • createAsyncThunk:用于创建处理异步操作的 thunk action。
  • configureStore:用于快速创建一个 Redux store,并自动集成常用的 Redux 中间件。
  • createReducer:用于将多个 reducer 合成一个 reducer。
  • createSelector:用于创建 selector。

除了 createSlice,其他函数也是十分有用的,可以根据需求进行选择使用。

如何使用 createSlice 和 Redux Toolkit?

首先,安装 @reduxjs/toolkit

然后,在使用 createSlice 的组件中,将 slice.reducerslice.actions 添加到 Redux store 中即可。示例代码如下:

-- -------------------- ---- -------
------ - ----------- - ---- ------------------

-- -- ------- -----
----- ------------ - - ------ - -

-- -- -----
----- ------------ - -------------
  ----- ----------
  -------------
  --------- -
    ---------- ----- -- -
      -------------
    --
    ---------- ----- -- -
      -------------
    --
  --
--

-- -- ------- - ------
------ ----- - ---------- --------- - - --------------------
------ ------- --------------------
展开代码

接着,在 configureStore 函数中,传入 reducer 即可创建一个包含了常用 Redux 中间件的 Redux store:

最后,在组件中使用 useSelectoruseDispatch 即可获取 state 和 dispatch。示例代码如下:

-- -------------------- ---- -------
------ - ------------ ----------- - ---- -------------
------ - ---------- --------- - ---- --------------------

-------- ----- -
  ----- ----- - ----------------- -- --------------------
  ----- -------- - -------------

  ------ -
    -----
      ----------------
      ------- ----------- -- ---------------------------------
      ------- ----------- -- ---------------------------------
    ------
  -
-

------ ------- ---
展开代码

总结

createSliceRedux Toolkit 是 Redux 4.0 中新增的工具函数,可以帮助我们更好地使用 Redux,并提高开发效率。通过 createSlice 函数,我们可以轻易地创建一个包含了 reducer、action 和 selector 的 slice。而 Redux Toolkit 则提供了一系列常用的 Redux 工具函数,可以根据需求进行选择使用,如 createAsyncThunkcreateSelector 等。最后,通过 useSelectoruseDispatch,我们可以轻松地在组件中使用 Redux store。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65955f8eeb4cecbf2d98b0d6

纠错
反馈

纠错反馈