NPM 包 redux-object-connect 使用教程

阅读时长 7 分钟读完

Redux 是一种非常流行的 JavaScript 应用程序状态管理系统,它可以协调一个应用程序的数据流,并把应用程序的状态集中化处理。Redux 像是一个被全局使用的“状态仓库”,它存储了应用程序的当前状态,并通过一些特定的方法来更新这个状态。

Redux-object-connect 是一个基于 Redux 的工具,它提供了一种方便的方式来连接应用程序的 React 组件到应用程序的 Redux 状态管理中心。这个库也提供了简洁的工具来管理应用程序的对象状态。在这篇文章中,我们将会学习如何安装和使用这个npm 包,使你更快速的开发前端应用程序。

安装

你可以通过 npm 命令或者 yarn 命令来安装 redux-object-connect,例如:

用法

redux-object-connect 的主要目的是让使用 Redux 更快捷方便,所以它提供了一些简易的 API 来简化 Redux 的使用。使用 redux-object-connect 的第一步就是创建一个 store。例如:

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

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

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

这个例子创建了一个空的 state 对象,并在 Redux state 中提供了 store。

下一步是将 Redux 的状态应用到组件中。如果你使用了 Redux,那么你可能在组件中已经通过 connect 函数将状态,并从父组件中传递了 DOWN 到了子组件。使用 redux-object-connect,这些操作需要更少的代码来完成。

首先,在你的组件中引用函数:

使用 objectConnect 函数来设置你组件的 connect 状态。例如:

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

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

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

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

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

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

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

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

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

在这个例子中,我们创建了一个简单的 React 组件,并从配合文本中获取了 objectId。我们使用 objectConnect 函数来连接 required state 和 actions。componentWillMount生命周期中,我们将检查我们的对象是否已经存在于我们的 state 中,如果不存在,就会调用 fetchObject 方法来拉取它们。如果我们的数据 对象不在 state 中,我们会简单地展示一个 Loading 的消息。

我们使用 mapStateToProps 函数来注入在应用程序 store 中的数据。mapDispatchToProps 函数用来发起 action,并在 redux-object-connect 中对应连接到了 fetchObject 方法,fetchObject 方法的作用是获取数据,并在对象(object) 加载时更新 state。

在最后通过使用 objectConnect(mapStateToProps, mapDispatchToProps)(MyComponent) 来连接 redux 的 state 和 dispatch 到我们的组件。这些属性就会从父组件上传递 DOWN 到我们的子组件。

当我们进行以上的操作时,我们可以检查是否成功的将我们的 Redux state 和 dispatch 注入到我们的 React 组件中。如果一切都设置正确了,你的组件就能使用在父组件中提供的 state 和 action。

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

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

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

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

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

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

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

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

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

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

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

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

这将会渲染一个 React 组件,并在 props 中注入了这两个函数。Redux 状态被连接到应用程序的 state 中,并且我们可以通过 fetchObject 方法取回和更新 state。

在这篇文章中我向大家演示了如何使用npm 包 redux-object-connect。redux-object-connect 库提供了一些便利的库来简化你的状态管理,使你能够更快捷的进行应用程序开发。我希望这篇文章能够对你有所帮助。

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

纠错
反馈