Redux 中的中间件、store 和 reducers

阅读时长 5 分钟读完

Redux 是一种非常流行的 JavaScript 应用程序状态管理库。它使用一个单一的存储对象来存储整个应用程序的状态,并使用 reducers 来处理存储对象的更新。在这篇文章中,我们将深入讨论 Redux 中的中间件、store 和 reducers,并提供一些示例代码以帮助您更好地理解。

Redux 中的 store

在 Redux 中,store 是整个应用程序的状态存储对象。它是一个包含应用程序状态的单一 JavaScript 对象。store 可以被读取和更新,但不允许直接修改它。相反,我们使用 reducers 来处理状态的更新。

下面是一个简单的示例,展示了如何创建一个 Redux store:

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

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

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

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

在这个示例中,我们首先定义了一个初始状态,它只包含一个名为 "count" 的属性,并且其值为 0。然后,我们定义了一个 reducer 函数,它根据不同的 action 类型来更新状态。最后,我们使用 createStore 函数来创建一个 Redux store,并将 reducer 传递给它。

Redux 中的 reducers

在 Redux 中,reducer 是一个纯函数,它接收当前状态和一个 action 对象,并返回一个新的状态。reducer 的作用是根据 action 的类型来更新状态。

下面是一个简单的示例,展示了如何编写一个 reducer:

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

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

在这个示例中,我们定义了一个初始状态,它只包含一个名为 "count" 的属性,并且其值为 0。然后,我们定义了一个 reducer 函数,它根据不同的 action 类型来更新状态。如果 action 的类型是 "INCREMENT",则返回一个新的状态对象,它的 count 属性增加了 1。如果 action 的类型是 "DECREMENT",则返回一个新的状态对象,它的 count 属性减少了 1。如果 action 的类型不是上述两种类型,则返回当前状态对象。

Redux 中的中间件

在 Redux 中,中间件是一个函数,它可以在 action 被发送到 reducer 之前拦截它,并做一些额外的工作,比如日志记录、异步操作等等。中间件可以帮助我们更好地组织和管理应用程序的状态和行为。

下面是一个简单的示例,展示了如何编写一个 Redux 中间件:

在这个示例中,我们定义了一个 logger 中间件函数,它接收一个 Redux store 对象,并返回一个新的函数。新的函数接收一个 next 参数,它是一个函数,它将 action 发送到 reducer。最后,我们返回一个函数,它接收一个 action 对象,并在发送它到 reducer 之前记录日志,然后将它发送到 reducer。

为了在 Redux 中使用中间件,我们需要使用 applyMiddleware 函数将它们传递给 createStore 函数:

在这个示例中,我们使用 applyMiddleware 函数将 logger 中间件传递给 createStore 函数。

结论

在本文中,我们深入讨论了 Redux 中的中间件、store 和 reducers,并提供了一些示例代码以帮助您更好地理解。使用 Redux 可以帮助我们更好地组织和管理应用程序的状态和行为。如果您正在开发一个大型的 JavaScript 应用程序,那么 Redux 将是一个非常有用的工具。

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

纠错
反馈