npm 包 redux-fetch 使用教程

阅读时长 8 分钟读完

redux-fetch 是一个适用于 React 应用程序的 NPM 包,它提供了一种简单的方式来处理 Web 请求,并将响应数据发送到 redux store。该包是基于 Redux 架构开发的,可以轻松地与 React 和 Redux 应用程序进行整合,同时提供了对 Express 和 Koa 等服务器端框架的支持。

安装

首先,在你的 React 和 Redux 应用程序中安装 redux-fetch。

使用

创建 Redux Store

创建 Redux store 并将 redux-fetch middleware 添加到中间件集合中。

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

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

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

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

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

注意:确保创建 store 时将 redux-fetch middleware 添加到中间件集合中,并将此 middleware 放在 thunk middleware 前面。

发送请求

在 Redux action creators 中使用 fetchAction 函数向服务器请求数据。

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

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

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

fetchAction 接受一个对象作为参数,该对象包含以下属性:

  • endpoint:请求的 API 地址。
  • method:HTTP 请求方法(如 “GET”、“POST” 或 “DELETE” 等)。
  • types:Redux action types 数组,分别表示请求开始、请求成功和请求失败。

处理响应

定义一个 reducer 函数来处理成功或失败的响应。

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

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

当请求成功时,redux-fetch 会自动向 redux store 分发一个类型为 ‘LOAD_DATA_SUCCESS’ 的 action,其中包含从服务器返回的响应数据。当请求失败时,redux-fetch 会向 redux store 分发一个类型为 ‘LOAD_DATA_FAILURE’ 的 action,其中包含响应中的错误信息。

在组件中使用

在 React 组件中使用 connect 函数连接 Redux store,并调用 action creators 来发起请求。

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

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

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

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

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

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

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

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

注意:首先,在 component mount 时发出请求(通过调用 this.props.loadData())。当需要在组件中使用 Action Creator 时,请使用 mapDispatchToProps 对象而不是函数。

完整示例

以下是一个使用带有 Redux 的 fetch 的完整示例。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以上就是 redux-fetch 包的详细使用教程,现在你就可以开始通过 Redux 易受攻击的加拿大的 fetch 来更好地控制您的 Web 请求了!

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

纠错
反馈