npm 包 redux-persist-immutable-x 使用教程

简介

redux-persist-immutable-x 是一个基于 redux-persist 的持久化解决方案,针对使用 immutable.js 的 redux 应用进行了优化。该包可以实现在 redux 应用中将 store 中的数据持久化到本地存储中,使得在页面刷新时数据能够被恢复,或者在应用关闭时数据不会丢失。

安装

在项目根目录下安装 redux-persist 和 redux-persist-immutable-x:

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

使用方法

  1. 定义 redux 的 store

在项目中创建一个 Redux store 对象,并将其传递给 redux-persist-immutable-x 的 persistReducer 函数:

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

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

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

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

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

persistConfig 对象将使用 redux-persist 的 storage 将数据存储到本地存储中,而 persistedReducer 是将所有 reducer 组成的根 reducer 和 persistConfig 对象传递给 redux-persist 的 persistReducer 函数返回的持久化 reducer。

  1. 将 redux 中的状态持久化

persistStore 是 redux-persist 接口返回的一个函数,它将 store 包装在一个组件中(Provider),以使所有组件都能访问 store。需要注意的是,由于持久化需要时间,因此需要等到持久化完成后再渲染 App 组件。

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

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

  ------ -
    --------- --------------
      --- ------ ---
    -----------
  --
--
  1. 配置持久化白名单

可以在 persistConfig 对象中配置一个 whitelist 数组,以指定哪些 reducer 将被持久化。例如只需在 app reducer 中存储 state.auth,可以将其加入白名单中:

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

示例代码

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

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

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

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

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

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

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

总结

redux-persist-immutable-x 提供了一个简单的方法,可以将 redux 中的 store 持久化到本地存储中,以便在刷新或关闭页面时进行恢复。通过配置白名单,使其只能持久化部分 reducer 的状态,同时避免了非必要的存储,提高了存储效率。如果你的项目使用了 immutable.js 和 redux,那么 redux-persist-immutable-x 是一个非常好的选择。

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


猜你喜欢

  • npm包reminders-menu-bar使用教程

    引言 在前端开发过程中,我们经常需要使用一些工具或插件来提高我们的效率或优化我们的开发体验。npm是一个包管理器,可以用来管理和发布各种前端开发所需的包。reminders-menu-bar是一种np...

    3 年前
  • 使用 npm 包 rn-mobile-pack 进行 React Native 移动开发

    在现代的移动应用程序开发中,使用 React Native 是一个很流行的选择,因为它可以使用 JavaScript 编写应用程序,并以原生组件的形式呈现在移动设备上。

    3 年前
  • npm 包 yeps-promisify 使用教程

    前言 在前端开发中,经常会涉及到异步编程,而使用 Promise 完成异步处理已经成为了一种非常流行的方式。但是,许多现有的 API 仍然返回回调函数,这就需要我们手动将这些 API 转换成 Prom...

    3 年前
  • npm 包 datechange 使用教程

    简介 在前端开发中,我们常常需要进行日期格式的转换或计算。为了方便处理日期相关的需求,Node.js 的 Package Manager (npm) 上有许多相关的工具包。

    3 年前
  • npm 包 react-slick-16 使用教程

    React-slick-16 是一个轻量、易用的 React 轮播图组件。它提供了许多轮播图特效,包括淡入淡出、滑动、翻转等等。主要用于轮播图、广告牌等应用场景。下面将介绍如何使用 react-sli...

    3 年前
  • NPM 包 Taconizer 使用教程

    介绍 Taconizer 是一个基于 JavaScript 的 NPM 包。它可以让开发者实现一个能够自动旋转的标签云。它可以应用于很多网站项目中,比如博客、产品页面等等。

    3 年前
  • npm 包 @nhz.io/slush-m 使用教程

    前言 在前端开发中,自动化工具的使用是非常重要的一环。其中,slush 命令行工具可以让我们快速地创建项目骨架、组件和工具库等,而 @nhz.io/slush-m 就是一个定制的 slush 模板,旨...

    3 年前
  • npm 包 hyper-argon 使用教程

    前言 在前端开发中,我们经常会使用响应 ...

    3 年前
  • npm 包 cerebro-npms 使用教程

    作为前端开发者,我们经常需要寻找各种 npm 包来解决问题,而在这种情况下,cerebro-npms 可以成为我们的好帮手。它是一个基于 Cerebro app 的插件,可以搜索 npm 包并提供快速...

    3 年前
  • npm 包 maybe-monad 使用教程

    在前端开发中,我们经常需要对数据进行处理。然而,数据不可避免地会出现为空的情况,这时候就需要使用一些处理空值的方法。在 JavaScript 中,我们可以使用 null 或 undefined 表示空...

    3 年前
  • npm 包 qj-button 使用教程

    在前端开发中,有大量的 npm 包可以帮助我们快速实现一些常用的功能,其中 qj-button 是一款实现按钮样式的 npm 包,可以让你在项目中使用高质量的按钮样式,从而提升用户的体验感。

    3 年前
  • npm 包 react-native-agenda 使用教程

    React Native 是目前最受欢迎的跨平台移动应用开发框架之一。而 React Native Agenda 则是一款非常实用的 React Native 日历组件库。

    3 年前
  • npm 包 vebt 使用教程

    引言 前端工程化是前端开发中非常重要的一环,其中构建工具和包管理工具是重要的工具之一。npm 是前端最常用的包管理工具之一,它提供了海量的 npm 包供前端开发者使用。

    3 年前
  • npm包result-monad的使用教程

    前言 前端应用中经常需要处理异步操作,例如从后端请求数据或者通过浏览器的API获取用户输入。针对这样的需求,JavaScript社区中出现了很多处理异步操作的库。 在使用异步库时,开发者常常需要手动处...

    3 年前
  • npm 包 memoized-member 使用教程

    前言 在前端开发中,我们经常需要对数据进行相应的处理,为了提高代码的效率和性能,我们通常会使用一些缓存技术。在 JavaScript 中,我们可以使用 memoization 技术来提高方法的效率,从...

    3 年前
  • npm包 object-assign-all 使用教程

    在前端开发中,我们常常需要对对象进行合并操作。虽然ES6提供了Object.assign方法实现对象合并,但是在某些情况下,我们需要更加方便和灵活地进行对象合并操作。

    3 年前
  • npm 包 react-scroll-to-element 使用教程

    前言 在 Web 开发过程中,我们时常需要实现页面内平滑滚动到指定元素的功能。虽然我们可以通过手写 JavaScript 来实现,但这样需要写大量的 DOM 操作代码,非常繁琐。

    3 年前
  • npm 包 uip 使用教程

    简介 uip 是一款能够帮助我们构建前端 UI 组件库的 npm 包,通过它我们可以快速地创建符合需求的 UI 组件库。uip采用 React 开发,主要面向 React 应用。

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

    Stencil 是一个可以创建 Web Components 的工具,它可以使得开发不同框架的 Web Components 更加简单。而 generator-stenciljs 是一个基于 Yeom...

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

    介绍 react-globally 是一个 React 应用中全局状态管理的库。它允许你在应用程序中创建一个全局的状态管理器,使得状态能够被任何组件访问和使用。它的设计目的是使得应用程序更容易管理和扩...

    3 年前

相关推荐

    暂无文章