Redux:让您的存储透明

阅读时长 5 分钟读完

前言:Redux是React生态中最流行的状态管理库之一,该库不仅适用于React应用程序,也可以用于其他JavaScript框架和库。如果您是Web开发人员,特别是关注React和Redux技术栈的开发人员,则应该对Redux有一定的了解。

简介

Redux是一种JavaScript状态管理库,可让您管理React应用程序中的所有状态。它将状态保存在一个称为“存储”的对象中,并提供了一组规则来更新该存储。通过Redux,您可以创建可预测的应用程序,这意味着您可以使用Redux来处理应用程序的所有状态,从而使状态管理透明。

Redux遵循Flux设计模式,其中单向数据流是一个核心思想。Redux还通过一些中间件来提供额外的功能,例如异步调用API,处理日志和错误等。

Redux三个原则

Redux的工作方式基于三个基本原则:

单一的数据源(Single source of truth)

Redux使用单个状态存储来保存应用程序中的所有状态,并将其命名为“存储”。这个存储是一个JavaScript对象,它将应用程序的状态保存在一个位置,从而使其易于理解和维护。

状态是只读的(State is read-only)

Redux状态是只读的,这意味着您不能在代码的任何其他位置直接更改状态。更改状态只能通过Redux的规则和操作执行。

使用纯函数(Changes are made with pure functions)

Redux改变状态的方式是使用纯函数。这意味着,您无法通过更改状态来改变状态,而是创建一个新的状态对象,并使其成为当前状态的替代品。

Redux核心概念

Redux有四个核心概念:存储,操作,操作员和订阅器。

存储

存储是Redux中的所有状态的单个位置。存储是一个JavaScript对象,它包含所有应用程序的状态。有了存储,您可以随时更改或查询状态。

操作

操作是Redux中更改状态的触发器。操作本身是一个JavaScript对象,该对象具有描述状态更改的信息,例如操作的类型和附加数据。

操作员

操作员是Redux中用于更改应用程序状态的纯函数。操作根据其类型执行操作员函数,并返回表示新状态的对象。

订阅器

订阅器是Redux中的一个功能,您可以用它来监听状态更改。每次触发操作,订阅器都会触发其回调函数。

示例代码

下面是一个简单的Redux的例子,以加深对Redux的理解:

首先,我们需要安装reduxreact-redux依赖:

然后,我们创建一个名为counter.js的文件,其中包含以下内容:

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

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

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

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

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

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

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

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

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

在上面的示例中,我们定义了一个计数器组件和一些操作,然后使用Redux创建了一个存储并将其绑定到组件。我们还将操作转换为组件的属性,以便可以从组件中调用它们。

最后,我们使用Provider组件将React应用程序的根元素包装在其中,并将store传递给Provider。我们将ConnectedCounter组件传递给Provider作为子代,以便它可以访问store并访问其属性。

结论

Redux是管理应用程序状态的非常好的工具。使用Redux,您可以将所有状态保存在单个位置中,并按照Redux的标准和规范实现更改状态的方式。

如果您正在考虑使用Redux,建议您仔细阅读官方文档以了解更多信息。Redux文档非常详细且对于初学者来说很友好,因此您应该很快就能开始熟悉Redux的工作方式。

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

纠错
反馈