npm 包 redux-persist-node-storage 使用教程

在现代的 web 开发中,前端框架和库已经成为一个这个行业中最受欢迎的技术栈。其中,React.js 是一个被广泛应用的前端库之一。React.js 不仅提供了开箱即用的富交互 UI 组件,也带来了更好的性能和可维护性。但是,在实际开发中,由于数据的状态变化及时性和可靠性的要求,会面临一些困难。这时候,Redux 可以帮助我们更好地管理应用程序中的状态,而 redux-persist-node-storage 可以帮助我们在不同的设备上实现数据持久化。

什么是 redux-persist-node-storage?

redux-persist-node-storage 是一个 Redux 应用程序的数据持久化解决方案。这个包使用了 Node Storage(基于 key-value 存储方式)来保存 Redux 的 state,从而使得我们可以在前端应用中取得持久化的数据。

安装和使用 redux-persist-node-storage

首先,我们需要在项目中安装 redux-persist-node-storage 包。可以使用 npm 命令进行安装:

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

接下来,让我们来看看如何配置 redux-persist-node-storage 以及如何适配到我们的项目当中。

持久化 Redux:

首先,我们需要在项目中引入 redux 中的相关组件,然后创建 Redux Store,用于保存整个应用程序的状态。为了使 Redux Store 能够进行持久化存储,在创建 store 的时候,我们需要将其与 redux-persist-node-storage 绑定在一起:

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

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

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

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

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

这里,我们将应用程序的根目录 state 命名为 "root",并且使用 nodeStorage 作为持久化存储。

恢复被持久化的状态

要恢复被持久化的状态,我们需要在进行 Store 注入之前,先检查本地存储中的状态。可以通过如下的方式:

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

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

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

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

这里,我们创建一个名为 initializeStore 的函数,用于在应用程序加载页面时创建 Store 并检查是否有本地存储的持久化状态,并返回 store 和 persistor。

存储和恢复具体的 schema

在有些情况下,我们需要对特定的 schema 进行持久化存储。这时候,我们可以通过下面的方式存储和恢复具体的 schema:

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

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

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

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

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

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

这里,我们将应用程序根目录的 appState schema 进行了持久化存储。只有 appState 中的状态变化才会进行存储。

给出一个例子

为了更好的理解上面所述的使用方法,这里给出一个简单的例子。这里我们将创建一个 Counter 组件,并使用 redux-persist-node-storage 来持久化 Counter 的值。

首先,我们创建一个 action:

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

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

然后我们来创建一个 reducer:

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

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

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

接着我们来创建一个 Counter app:

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

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

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

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

最后,我们需要将 Redux Store 与我们的应用程序连接起来,并且在项目中存储和恢复状态:

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

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

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

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

这里,我们将 Counter 组件包装在 Provider 组件中,并使用 PersistGate 来检查本地存储的状态。最后,我们可以在 persistedStore 发生变化时,将相应的状态进行存储。

结论

在本文中,我们深入探讨了如何使用 redux-persist-node-storage 来实现在前端应用程序中存储和恢复状态。我们了解了如何将 redux-persist-node-storage 与我们的 Redux Store 绑定,并在启动应用程序时恢复本地存储中的状态。我们还讲解了如何部分地为 redux-persist-node-storage 进行配置,来持久化特定的 schema。最后,我们根据一个实例,演示了如何使用 redux-persist-node-storage 来保持 Counter 的值的持久化,这将在实际开发中被广泛使用。

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


猜你喜欢

  • npm 包 @aws-sdk/signature-v4 使用教程

    介绍 在前端开发中,有些应用需要与 AWS(Amazon Web Services)进行交互。AWS 提供了一个安全认证的协议,叫做 AWS 签名算法 V4。签名算法 V4 是一种强加密算法,用于验证...

    4 年前
  • npm 包 @aws-sdk/apply-body-checksum-middleware 使用教程

    前言 在进行 AWS 服务的 API 请求时,我们经常需要在请求体中附带一个校验和,用于确保请求体的完整性。AWS SDK for JavaScript 提供了一个中间件,@aws-sdk/apply...

    4 年前
  • npm 包 @aws-sdk/bucket-endpoint-middleware 使用教程

    AWS S3 存储服务是一个强大的云端存储解决方案,但是在访问存储桶(bucket)时,需要传递一个 bucket endpoint。这个 endpoint 可以是一个 URL,也可以是一个 host...

    4 年前
  • npm 包@aws-sdk/config-resolver 使用教程

    在 AWS 开发中,我们经常需要使用 AWS SDK 进行上传、下载、列表等操作,而 AWS SDK 是 AWS 官方提供的一套用于开发 AWS 服务的库,其支持多种语言,其中包括 JavaScrip...

    4 年前
  • NPM 包 @aws-sdk/core-handler 使用教程

    什么是 @aws-sdk/core-handler ? @aws-sdk/core-handler 是 Amazon Web Services (AWS) 官方提供的一种用于生成 AWS SDK 的 ...

    4 年前
  • npm 包 @aws-sdk/credential-provider-env 使用教程

    前言 在开发 AWS 相关服务的应用程序时,认证是其中非常关键的一部分。AWS SDK 提供了多种方式来提供身份验证凭据,如在应用程序中硬编码凭据、使用 AWS IAM 角色和使用 AWS 凭证提供程...

    4 年前
  • npm 包 @aws-sdk/credential-provider-imds 使用教程

    前言 在前端开发中,经常需要使用 AWS(Amazon Web Services)提供的服务,需要在客户端执行 AWS 操作,为了保证安全性,在访问某些 AWS API 时需要进行身份验证。

    4 年前
  • npm 包 @aws-sdk/credential-provider-ini 使用教程

    前言 在使用 AWS SDK 开发项目时,我们需要提供 AWS 认证信息。AWS SDK 为我们提供了许多种获取认证信息的方式,其中之一是使用 AWS CLI 配置 AWS 认证信息。

    4 年前
  • npm 包 @aws-sdk/credential-provider-node 使用教程

    前置知识 在学习使用 npm 包 @aws-sdk/credential-provider-node 之前,需要了解以下知识: AWS IAM 用户和角色 AWS SDK for JavaScrip...

    4 年前
  • npm 包 @aws-sdk/hash-node 使用教程

    前言 在前端开发中,我们会需要使用亚马逊 Web 服务(AWS)的功能。AWS 提供了一系列服务,例如 Amazon S3、DynamoDB、Lambda 等,这些服务可以为我们的前端应用带来很大的便...

    4 年前
  • NPM 包 @aws-sdk/util-utf8-browser 使用教程

    在前端开发中,我们经常需要进行字符串编码和解码的操作。而为了方便地完成这些操作,AWS SDK 推出了一款名为 @aws-sdk/util-utf8-browser 的 NPM 包。

    4 年前
  • npm 包 @aws-crypto/sha256-js 使用教程

    简介 npm 是 Node.js 的包管理器,它可以通过 npm 安装和管理大量的开源库和框架。其中,@aws-crypto/sha256-js 是 AWS 提供的一个计算 SHA256 散列值的 n...

    4 年前
  • npm 包 @aws-sdk/util-hex-encoding 使用教程

    简介 在前端开发过程中,我们经常会需要进行二进制数据的处理,而十六进制编码就是常用的一种方式。@aws-sdk/util-hex-encoding 是 Amazon Web Services (AWS...

    4 年前
  • npm 包 @aws-sdk/hash-stream-node 使用教程

    前言 随着互联网技术的发展,云的成为了越来越多开发者使用的服务,AWS 也因其强大的云计算服务和 API 技术的支持,成为了许多开发者的首选。本文介绍的是 AWS 的 Hash 流模块包 @aws-s...

    4 年前
  • npm 包 @aws-sdk/location-constraint-middleware 使用教程

    AWS 是全球最大的云计算服务提供商之一,其提供了一系列云端服务,其中之一就是 S3 存储服务。在使用 S3 存储服务时,我们需要指定存储桶(Bucket)的位置(Region),否则 AWS 会将其...

    4 年前
  • npm包@aws-sdk/middleware-content-length使用教程

    前言 Amazon Web Services(AWS)是目前世界上最大的云服务提供商之一。AWS提供各种不同的服务,例如存储、计算、数据库等等。AWS SDK for JavaScript是一组Jav...

    4 年前
  • npm 包 @aws-sdk/middleware-expect-continue 使用教程

    前言 @aws-sdk/middleware-expect-continue 是一个用于 AWS JavaScript SDK 的中间件,用于添加 Expect: 100-continue 标头,以提...

    4 年前
  • npm 包 @aws-sdk/middleware-header-default 使用教程

    介绍 @aws-sdk/middleware-header-default 是一个 Node.js 模块,它提供了一种十分简单的方式向 AWS SDK 请求中添加默认的 HTTP Header。

    4 年前
  • npm 包 @aws-sdk/middleware-serializer 使用教程

    简介 @aws-sdk/middleware-serializer 是用于在 AWS SDK for JavaScript (V3) 中自动生成 HTTP 请求体和响应正文的中间件。

    4 年前
  • npm 包 @aws-sdk/abort-controller 使用教程

    前言 随着前端工程化的普及,构建一个复杂的前端应用往往需要依赖大量的第三方库和组件。而这些库和组件往往会依赖其他的库和组件,因此在管理依赖这个环节,就需要使用到 npm 这样的包管理工具了。

    4 年前

相关推荐

    暂无文章