npm 包 redux-raven-persist-middleware 使用教程

简介

在前端开发中,Redux 是最常用的状态管理库之一。Redux 提供了一个全局单一状态树,通过派发 Action 来更新状态树中的值,然后通过 React 组件的 connect 高阶函数将状态挂载到组件属性上,方便了跨组件的数据传输。但是 Redux 在持久化存储方案上没有给出明确的解决方案,这就意味着当用户关闭了浏览器或者浏览器崩溃重启后,Redux 状态会被清空。为了解决这个问题,我们可以使用第三方的持久化存储中间件,redux-raven-persist-middleware 是其中之一。

redux-raven-persist-middleware 是基于 Redux 而开发的持久化存储中间件,可以让 Redux 状态持久化到本地浏览器的 sessionStorage 或者 localStorage 中,并且可以通过 Raven.js 将持久化数据上报到 Sentry 日志服务,帮助我们更好地监控网站的运行情况。

安装

使用 npm 安装:

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

版本选择

redux-raven-persist-middleware 目前已经更新到 2.0.0 版本,要使用旧版本,可以看这里 redux-raven-persist-middleware

使用

redux-raven-persist-middleware 的使用非常简单,只需要在创建 Redux Store 的时候配置相关参数即可。以下是一个示例代码:

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

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

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

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

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

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

在上述代码中,我们进行了以下操作:

  1. 定义了 redux-persist 的配置选项,其中 key 是 Redux 执行上下文中用于选择恢复子状态的 key,storage 是存储机制,可以是 sessionStorage 或者 localStorage。
  2. 初始化 Sentry。
  3. 创建 redux-raven-persist-middleware 传入 Sentry 对象,Sentry 对象可以为空,如果为空,则 redux-raven-persist-middleware 不会上报数据到 Sentry,只会将数据持久化到本地存储中。
  4. 创建 Redux Store,其中使用了 redux-raven-persist-middleware,并且将其添加到 Redux Store 的中间件中。
  5. 导出 store 和 persistor 对象,这样在组件内就可以使用了。

示例

在下面的示例中,我们将创建一个简单的 Redux 应用程序,并将状态保存到本地存储中。还将演示如何从 Sentry 后台记录错误日志。

准备

在开始之前,您需要安装以下三个包:

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

演示

让我们在 index.js 文件中创建 Redux 应用程序。

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

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

store.js 中分别定义了 store 和 persistor。

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

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

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

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

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

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

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

reducers.js 中定义了一些处理数据的函数。

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

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

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

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

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

actions.js 里定义了一个 操作类型 增加 计数器 的函数。

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

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

App.js 中则是首页,其中 connect 函数将少部分的 Redux Store 中的状态映射到 App 组件的属性中。

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

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

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

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

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

当你运行代码并在计数器上单击几次后,本地存储中将持久化存储 Redux 的状态树数据。可以将您的浏览器关闭并重新打开,然后 Redux 状态将得到恢复。

此外,如果您在设置 Sentry 时,可以看到所有错误日志以及持久化的数据在 Raven 事件下,这将有助于您更好地监控和调试您的应用程序。

总结

在本文中,我们探讨了如何在 Redux 应用程序中持久化存储状态。我们使用 redux-raven-persist-middleware 包来实现此功能,并稍微了解了使用 Sentry 来记录任何错误的记录。

希望文中内容能对大家有所帮助,可以尝试着将 redux-raven-persist-middleware 应用到自己的项目中,为 Redux 应用程序持久化存储状态打下坚实的基础。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005591981e8991b448d68b3


猜你喜欢

  • npm 包 niduscss-framework 使用教程

    在前端开发中,CSS 框架是我们经常使用的工具之一。niduscss-framework 是一个基于 CSS3 和 HTML5 的轻量级前端框架,具有易用性和灵活性优势。

    2 年前
  • NPM 包 Substandard 使用教程

    Substandard 是一个基于 Webpack 和 React 的 UI 组件库,提供了一系列基础组件和样式,用于快速搭建前端项目的 UI 界面。本篇文章将为大家介绍如何使用 Substandar...

    2 年前
  • npm 包 brkfst-pkg-bootstrap-4 使用教程

    在前端开发中,Bootstrap 是一款广泛应用的前端框架。它提供了丰富的组件和样式,能够快速地构建出具有响应式布局的网站和应用程序。而使用 npm 包管理器安装 Bootstrap 更是成为了常见的...

    2 年前
  • npm 包 ember-leaflet-iiif-tile-layer 使用教程

    在前端开发中,经常需要使用地图库来展示地理信息。而使用 Leaflet 库可以方便地显示地图和图层信息。在 Leaflet 库的基础上,我们可以使用 npm 包 ember-leaflet-iiif-...

    2 年前
  • npm 包 angular2-library-hostetler 使用教程

    什么是 angular2-library-hostetler? angular2-library-hostetler 是一个基于 Angular2 库开发的 npm 包,它可以帮助开发人员创建可重用的...

    2 年前
  • npm 包 axiom-apis 使用教程

    简介 axiom-apis 是一个基于 axios 封装的 HTTP 请求库,它提供了简单易用的 API 和可扩展性,方便开发者在前端项目中进行 HTTP 请求。 安装 --- ------- ---...

    2 年前
  • npm 包 butter-assemble-exclude 使用教程

    在前端开发过程中,我们经常会用到各种各样的 npm 包来帮助我们提高开发效率。其中 butter-assemble-exclude 是一款非常实用的包,可以帮助我们在使用 assemble 时快速排除...

    2 年前
  • npm 包 bigone2000 使用教程

    bigone2000 是一个使用 Promise 和 WebSocket 通信的 BigONE API 客户端库,适用于 Node.js 环境和浏览器环境。通过 bigone2000,我们可以轻松地与...

    2 年前
  • NPM 包 git-linter 使用教程

    简介 Git 是开发者日常使用最为频繁的工具之一,而 git commit message 则是重要的开发文档,标准的 commit message 可以方便日后的维护和查阅。

    2 年前
  • npm 包 makeen-core 使用教程

    makeen-core 是一个用于构建 Node.js 应用程序的 npm 包。它提供了许多有用的工具、插件和扩展程序,这些功能使得您可以使用常规的 MVC 模式构建应用程序,并且使用该包的工具可以极...

    2 年前
  • npm 包 promise-polyfiller 使用教程

    什么是 promise-polyfiller promise-polyfiller 是一个用来解决旧版本浏览器不支持 Promise 的 npm 包。它能够补充旧版本浏览器不支持的 Promise A...

    2 年前
  • npm 包 react-native-nuance-text-to-speech 使用教程

    在 React Native 开发中,很多时候需要使用到语音合成技术,让 APP 能够自然地与用户进行交流。而 Nuance 的 Text-to-Speech 引擎被广泛应用于语音合成领域,因此,本篇...

    2 年前
  • npm 包 yijing 使用教程

    npm 包 yijing 使用教程 yijing 是一款基于 JavaScript 的 npm 包,用于实现对《易经》的解释和处理。它可以帮助前端程序员更加方便地应用《易经》相关的知识,达到更好的设计...

    2 年前
  • npm 包 @opensourcerefinery/osr-ascii-art 使用教程

    前言 ASCII 艺术,又叫字符艺术,是一种用 ASCII 字符来表现图像、图表和较为复杂的艺术作品的技术。在计算机图形的早期,ASCII 艺术是一种流行的方式,用于在计算机屏幕上表现图形。

    2 年前
  • npm 包 @rajkeshwar/ng-bootstrap 使用教程

    在前端开发的过程中,我们经常会用到许多工具和框架,其中的 npm 包是非常重要的一部分。本文将介绍一个强大的 UI 库,@rajkeshwar/ng-bootstrap,它是 Bootstrap 4 ...

    2 年前
  • npm包conquest-living-styleguide使用教程

    随着前端技术的不断发展,前端开发工程师需要快速构建出美观、规范的界面,同时保持开发效率和提高质量。在这个时代,样式库和组件库成为了前端开发的必备工具之一。而conquest-living-styleg...

    2 年前
  • npm 包 pushback 使用教程

    前言 在前端项目中,我们经常需要向数组中添加新元素。在这个过程中,我们可能会遇到一些问题,例如添加的元素类型不匹配,或者需要移除添加的元素。这时候,npm 包 pushback 可以帮助我们解决这些问...

    2 年前
  • npm 包 vue-morepage-cli 使用教程

    前言 随着 Vue.js 的逐渐普及,越来越多的前端开发人员开始偏好使用 Vue.js 来构建应用程序。而在实际开发中,一个常见的需求就是实现多页应用。但是,由于 Vue.js 本身是一个单页应用框架...

    2 年前
  • npm 包 flclover-proxy 使用教程

    在现代的应用程序开发中,前端开发工具的重要性越来越受到重视。其中,npm 包是前端开发中不可缺少的工具。npm 包可以帮助你管理工程中的依赖,提高工作效率。而 flclover-proxy 就是一个非...

    2 年前
  • npm 包 test-sig-library 使用

    npm 是一个 JavaScript 包管理器,允许开发者分享和重用代码。test-sig-library 是一个可以用来测试算法的 npm 包,在前端领域具有很高的实用价值。

    2 年前

相关推荐

    暂无文章