npm 包 redux-safe-reducers 使用教程

阅读时长 4 分钟读完

前言

在前端开发中,使用 Redux 等安全性较高的状态管理库已经成为了很多开发者的选择。然而,当状态变得复杂时,就会出现一些安全性问题,例如因为异步更新状态、无效的 action 等情况,导致应用程序崩溃的情况。针对这个问题,有一个 npm 包叫做 redux-safe-reducers,它可以帮助开发者保证某些 reducer 是不会崩溃的,从而加强应用程序的鲁棒性。

安装

redux-safe-reducers 可以通过 npm 包管理器进行安装:

用法

redux-safe-reducers 通过添加一个 enhancer 来增强原有的 reducer。下面是一个例子:

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

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

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

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

上面代码中,先创建一个常规的 reducer。通过传入常规的 reducer,safeReducerEnhancer 函数返回一个新的 reducer,这个新的 reducer 是在常规 reducer 基础上增加了异常捕获功能。

配置

我们可以在 safeReducerEnhancer 函数中传入一个可选的参数配置对象。下面是配置对象中可用的属性:

errorHandler

errorHandler 属性指定当 reducer 函数体内发生异常时,应该如何处理该异常。它可以是一个函数或者一个字符串。如果 errorHandler 是一个函数,则该函数接受一个潜在的错误对象,并且它必须返回一个更新后的状态。如果 errorHandler 是一个字符串,则它是一个状态恢复的初始值。

下面是一个配置 errorHandler 的例子:

whitelist

whitelist 属性是一个数组,包含了可以安全执行的 action.type 的值。属于这个数组的 action.type 不会捕获错误,从而确保 reducer 可以正常执行。这个配置项对于那些偶尔返回 undefined 或 null 的 reducer 特别有用。

下面是一个配置 whitelist 的例子:

结语

redux-safe-reducers 是一个非常实用的 npm 包,它可以帮助我们更加安全地管理 Redux 状态。在实际开发中,我们可以根据实际需求选择是否使用这个 npm 包。当然,如果你需要手动捕捉和处理所有 reducer 中可能出现的异常,也可以不使用该 npm 包。

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

纠错
反馈