npm 包 mirrorx-persist 使用教程

简介

mirrorx-persist 是一个基于 mirrorx 的状态管理框架的扩展,旨在提供一种简单的方法,以便在单页面应用(SPA)中长期保存一些持久化数据,例如登录信息等。mirrorx 是一个基于 React 的状态管理库,它的目标是提供一个易用的状态管理方案来解决 React 应用的问题,同时也是 inspired by Redux 等工具的一些想法和实践。mirrorx-persist 正如它的名字所暗示的那样,它为 mirrorx 库提供了持久化的存储机制,它将状态存储到本地存储(Local Storage),以便您的应用程序可以长期保存状态信息。

安装

如果您使用 npm,可以使用以下命令来安装 mirrorx-persist:

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

如果您使用 yarn,可以使用以下命令来安装 mirrorx-persist:

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

如何使用

首先,在您的应用中引入 mirrorx-persist

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

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

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

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

持久化 store 对象

您可以使用 persistStore 函数来创建持久化 store 对象:

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

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

在此代码中,您需要调用 mirror.getStore() 方法来获取 mirrorx 库之前创建的 store 对象。然后,您就可以使用 persistStore 方法,让 mirrorx-persist 帮助您创建一个持久化的 store 对象。在这里,我们传递了一个数组,来告诉 persistStore 哪些 mirror 中的 store keys 应该被持久化。同时,每个被传递的键都应该与您的 mirror reducers 中对应的键一致。

白名单和黑名单

mirrorx-persist 支持 whiteListblackList,以更细粒度地控制哪些 state 变量数据被存储和哪些不会被存储。

blackList 通常用于设置不希望被 mirrorx-persist 持续性存储的 store 数据, whiteListblackList 相反,只持久化 store 中指定的数据。

在使用 whiteList 和 blackList 的时候,可以在初始化 mirrorx-persist 的时候进行传入:

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

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

版本号迁移

会出现这样的情况:您首先发布了您的应用程序,并添加了一些新的状态变量存储到 local storage 中。然而,在后续的更新中,您可能会删除或重命名一些变量,导致现有环境存储的变量已经过时。因此,您需要确定如何从现有版本迁移到新版本。这就是版本迁移所涉及的事情。

您可以使用对 mirrorx-persist 的访问来定义版本号,并管理版本迁移。初始化时,您可以为 persist 方法传递一个对象,该对象可以包含有效值的 version 属性,例如:

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

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

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

一旦您设置了版本号,您可以编写 improveState 函数来处理 store 的 migrations,例如:

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

在这里,我们实现了 migrate 函数。在每次检索保存的状态之后,mirrorx-persist 将调用此函数来处理 migrations。我们只需要检查存储的 state 对象的版本号是否小于当前版本号,如果小于需要执行 state 迁移。在这种情况下,我们将版本号在 state 中更新为 2。您可以根据实际需求决定需要更改哪些 store state,修改哪些数据。最后,我们需要确保将我们的 state 数据返回为 Promise,以便 mirror 可以检测异步任务的执行完毕。

示例代码

以下是一个示例项目。它将演示如何在 mirrorx 应用中使用 mirrorx-persist。

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

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

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

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

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

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

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

总结

mirrorx 是一个以 React Redux 为基础模型进一步封装的状态管理库,其主要优势是使用起来相对更简单方便,目前已经在国内一些知名企业的 Web 项目中广泛使用。而 mirrorx-persist 的出现,则为 mirrorx 应用程序的持久化存储提供了一种简单、快速的解决方案,同时支持版本控制、黑白名单等等功能,可在不引入额外依赖的情况下快捷地实现 store 数据的持久存储,符合一致的 API 设计,整合了多个 Web 存储API,客户端轻松实现存储方案,并提供开放的 API 接口,极具可扩展性。了解并掌握 mirrorx-persist 的使用技巧,将会为我们的 Web 项目提供很大的便利性,推动 Web 项目的发展。

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


猜你喜欢

  • npm 包 react-pure-events 使用教程

    在前端开发中,我们往往需要向组件中添加事件监听器。React 作为一款流行的前端框架,也提供了多种事件处理机制,其中常见的方式是使用 onChange,onClick 等属性来指定回调函数。

    3 年前
  • npm 包 nativescript-swipe-card 使用教程

    前言 在前端开发过程中,我们经常会用到卡片式布局来展示内容,而卡片式布局中的手势交互,比如左右滑动、点击等,也是非常常见的。在 NativeScript 开发中,我们可以使用 npm 包 native...

    3 年前
  • npm 包 tudup-users 使用教程

    介绍 tudup-users 是一个 npm 包,它提供了一些针对学生用户的功能。特别地,它包含对用户登录、注册、找回密码和更改额外的学生信息(如姓名、学号、院系和专业)的支持。

    3 年前
  • npm 包 dauntless 使用教程

    dauntless 是一个帮助前端开发者轻松构建响应式应用程序的工具。 安装 使用 npm 可以直接安装 dauntless。 --- ------- ---------概述 dauntless ...

    3 年前
  • npm 包 react-priority-nav 使用教程

    前言 React 是当前最流行的前端 JavaScript 库之一,使用 React 可以方便地构建复杂的前端应用程序。在 React 应用开发中,我们经常需要使用各种第三方库来实现某些功能,而 np...

    3 年前
  • npm 包 reading-level 使用教程

    在今天的信息爆炸时代,我们在浏览网页的时候,往往需要阅读大量的文章,但是在这么多的文章中,有些文章内容好却很难阅读,有些文章内容虽然十分简单,但阅读起来也十分枯燥。

    3 年前
  • npm 包 empty-option 使用教程

    在前端开发中,使用下拉框(select)是比较常见的交互形式之一。但是,在不设置默认值的情况下,下拉框的第一个选项通常是一个空选项(或者说是占位符)。如果我们使用常规的 HTML 元素来创建这样的下拉...

    3 年前
  • npm 包 check-properties-duplicate 使用教程

    简介 在前端开发中,我们经常需要对对象进行操作,但是对象的属性重复问题却时常出现。解决这个问题的一个优秀的 npm 包就是 check-properties-duplicate。

    3 年前
  • npm 包 vue-vb-toast 使用教程

    简介 vue-vb-toast 是一个基于 Vue.js 的简单易用的 Toast 组件。它提供了多种样式选项和动画效果,并且可以自定义图标和持续时间。它可以用于各种项目,包括 Web 应用、移动应用...

    3 年前
  • npm 包 rn-mtt-base 使用教程

    rn-mtt-base 是一款专门为 React Native 应用开发提供基础组件和通用功能的 npm 包。该包集成了许多通用的组件和工具类,以便于开发者可以更快速地构建和维护应用程序。

    3 年前
  • 使用 ngx-selectcolor 简介

    什么是 ngx-selectcolor? ngx-selectcolor 是一个基于 Angular 框架的 npm 包,用于在前端界面中创建颜色选择器组件的插件。

    3 年前
  • npm 包 memie-generator 使用教程

    如果你正在开发前端需要添加表情的应用,那么 npm 包 memie-generator 可以为你带来很大的便利。本篇文章将详细介绍如何安装和使用该包。 1. 安装 首先,你需要在命令行中运行以下命令进...

    3 年前
  • npm 包 jsonize-loudfail 使用教程

    什么是 jsonize-loudfail? jsonize-loudfail 是一个 npm 包,它可以将接收到的数据转换为 JSON 格式。如果转换失败,它会抛出详细的错误信息,而不是简单地返回 n...

    3 年前
  • npm 包 network-vis 使用教程

    在前端开发中,数据可视化是非常重要的一个部分,而利用图表来展示网络结构数据更是其中一个热门的需求。network-vis 就是一个基于 D3.js 的网络结构可视化库,不仅可以绘制各种类型的网络图表,...

    3 年前
  • npm 包 ngx-resource-gearheart 使用教程

    简介 ngx-resource-gearheart 是一个适用于 Angular 框架的简单易用的资源管理库,其主要特点在于支持多种 RESTful 风格的 API 接口,并可以轻松地在服务端的资源 ...

    3 年前
  • npm 包 cacti 使用教程

    介绍 Cacti 是一个基于 D3.js 的 JavaScript 图表库,它提供了丰富的图表类型和可自定义的选项,使开发人员能够快速创建复杂和美观的图表。 安装 Cacti 可以通过 npm 安装,...

    3 年前
  • npm 包 cm-lib-tokens 使用教程

    简介 cm-lib-tokens 是一款常用的前端 UI 管理工具,它主要用于管理各种 UI 元素的颜色,字体,图标和边框等属性,从而让前端开发更加快速和高效。 安装 要使用 cm-lib-token...

    3 年前
  • npm 包 konstructor-essentials 使用教程

    介绍 konstructor-essentials 是一个方便风格化 JavaScript 构造函数的 npm 包。它基于 es6 class 语法并提供了许多方法,使得我们可以更加轻松地编写构造函数...

    3 年前
  • npm包react-route-props使用教程

    React是一个流行的前端框架,它可以帮助我们创建灵活的、易于维护的Web应用程序。React通常与其他库或框架一起使用,以实现更高级的功能。其中之一是React-router,它提供了一种为Reac...

    3 年前
  • npm包suma_aaron的使用教程

    npm是一款非常流行的前端开发工具,它为前端开发者提供了丰富的包管理和构建工具。在本篇文章中,我们将介绍一款名为“suma_aaron”的npm包,该包可以帮助我们更方便地进行数学计算和操作。

    3 年前

相关推荐

    暂无文章