npm 包 redux-promise-axios 使用教程

阅读时长 9 分钟读完

在前端开发中,请求后端数据是必不可少的一项工作。redux-promise-axios 是一个非常方便的 npm 包,可以帮助我们更加简单地处理异步请求。

安装

可以使用 npm 进行安装:

基础使用

redux-promise-axios 实际是对 axios 进行了一层封装,使其支持 Promise。

我们在 redux 中的使用方式类似于这样:

在我们的 Action 中,我们可以简单地传入一个 Promise:

在 reducer 中,我们可以通过判断 action 中 type 的方式,处理返回结果:

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

高级使用

可以通过配置来对 redux-promise-axios 进行更加大量的定制。

设置请求前缀

可以通过配置来设置请求的前缀,例如:

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

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

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

处理请求失败

可以通过配置 returnRejectedPromiseOnError 选项来实现对请求失败的处理。

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

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

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

这里值得特别注意的是,如果你希望使用 returnRejectedPromiseOnError 来处理请求失败,那么在 reducer 中对于错误的处理,需要给出一个默认的返回值,例如:

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

设置请求拦截器

可以通过配置来设置请求拦截器,例如:

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

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

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

我们可以在请求 interceptor 中做一些事情,例如设置请求头,对请求的数据进行处理等等。

设置响应拦截器

可以通过配置来设置响应拦截器,例如:

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

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

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

响应拦截器拦截到响应之后,我们可以根据返回结果来做进一步处理,例如未授权的处理、错误处理等等。

示例代码

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

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

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

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

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

以上就是对 redux-promise-axios 的使用教程,希望对你有所帮助。

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

纠错
反馈