npm 包 redux-hist-dom 使用教程

简介

redux-hist-dom 是一个 Redux 中间件,通过监听浏览器的地址栏变化来实现对 Redux 状态树的变化。它的核心就是运用了 history 库中的 createBrowserHistory API 以及 connected-react-router 库中的一些方法。通过这个中间件,我们可以很方便地在 Redux 应用中实现历史记录功能。

安装

使用 npm :

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

或者使用 yarn :

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

使用

引入

在创建 Redux store 之前引入 redux-hist-dom 并使用 applyMiddleware 引入中间件:

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

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

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

注意:histMiddleware 需要在 routerMiddleware 之后注册,因为 histMiddleware 依赖于 routerMiddleware

配置

histMiddleware 接受一个可选的配置对象,可以通过以下属性进行配置:

  • filter:过滤器,用于指定哪些 actions 需要被记录到浏览器历史中。默认为 null,即所有 actions 都会被记录。
----- ---------- - -
  --------------------------
  ----------------------- - ------- ------ --
    ------------ --- -------------------
  ---
--
  • transform:状态变换函数,用于在记录到浏览器历史之前对状态进行处理。默认为 null,即不做处理。
----- ---------- - -
  --------------------------
  ----------------------- - ---------- ----- --
    -- --------- ---------- ----------- --
  ---
--
  • whitelist:白名单数组,用于指定哪些状态属性需要被保存到浏览器历史中。默认为 null,即所有属性都会被保存。
----- ---------- - -
  --------------------------
  ----------------------- - ---------- ------------- ---
--

使用

使用 pushHist() 方法添加一个新的状态到浏览器历史记录中:

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

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

使用 goHist(number) 方法回退或前进指定的历史记录数量:

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

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

使用 popHist() 方法将当前状态出栈,回退至前一个状态:

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

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

示例代码

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

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

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

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

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

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

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

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

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

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

结论

redux-hist-dom 可以提供很好的浏览器历史记录管理支持,适用于需要记录用户与 Redux 状态交互历史的场景。在 React、Redux、React-Router 应用中使用 redux-hist-dom 可以减少很多冗余的代码,同时也可以提高代码的可读性和可维护性。

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


猜你喜欢

  • npm 包 @image/packer 使用教程

    随着 Web 技术的不断发展,前端页面中使用到的图片越来越多,图片的优化也变得愈发重要。图片优化的一个重要方法是将多张小图片合并生成一张集合图片,这样可以减少 HTTP 请求,提高页面的加载速度。

    3 年前
  • npm 包 @nathantreid/node-ssh 使用教程

    介绍 @nathantreid/node-ssh 是一款基于 Node.js 开发的 SSH 认证工具,可快速安全地连接到远程服务器,并在 Node.js 环境下对其进行操作。

    3 年前
  • npm 包 d3node-map-world 使用教程

    d3node-map-world 是一个 npm 包,它基于 D3.js 和 Node.js 构建了一个简单易用的地图生成器,可以用来生成世界地图和国家地图等。本教程将介绍如何使用 d3node-ma...

    3 年前
  • npm 包 fork-func 使用教程

    介绍 fork-func 是一个简单易用的 npm 包,它提供了一种在 Node.js 中轻松实现进程间通信的方法。它是通过将某个 JavaScript 函数发送到子进程中执行,并返回执行结果实现的。

    3 年前
  • npm 包 styled-shortcut-components 使用教程

    在前端开发中,CSS 是必不可少的一部分,而使用预处理器如 Sass 以及 CSS in JS 技术能够提高我们的开发效率和代码可维护性。有时候我们需要快速地在项目中使用一些常用组件,但又不想写过多的...

    3 年前
  • npm 包 tardig 使用教程

    在今天的前端开发中,我们使用大量的第三方库来提高工作效率和代码质量。npm 包是 Node.js 中托管的最大的软件包管理系统,它不仅提供了大量的 JavaScript 包,也为我们开发和发布包提供了...

    3 年前
  • npm 包 minimalize 使用教程

    简介 Minimalize 是一个用于实现 JavaScript 代码混淆的 npm 包。它可以对大部分常见的 JavaScript 代码进行压缩混淆,同时支持多个混淆级别。

    3 年前
  • npm 包 class-o-mat-data-object-plugin 使用教程

    简介 在前端开发中,我们经常会需要用到对象操作。而使用 class-o-mat-data-object-plugin 这个 npm 包可以大大简化我们的对象操作和管理,使得我们的开发更加高效和便捷。

    3 年前
  • npm 包 benben-pagination 使用教程

    在前端开发中,经常需要对后端返回的数据进行分页处理,这时候我们就需要使用一些分页插件。其中,benben-pagination 是一个轻量级的分页插件,可以快速地实现分页功能。

    3 年前
  • npm 包 readingbar 使用教程

    前言 在前端开发中,我们常常会使用各种第三方库或工具来提高效率或实现某些功能。其中,npm 是一个十分常用的包管理工具,它可以方便地安装、管理和更新各种模块。本文将介绍一个 npm 包 reading...

    3 年前
  • NPM包dvla-vehicle-information使用教程

    dvla-vehicle-information是一个基于Node.js和NPM的Javascript库,它提供了一些方法来获取英国公路车辆注册信息。它是一个非常方便的工具,特别是在构建从汽车信息获取...

    3 年前
  • npm 包 platzom-jc 的使用教程

    介绍 npm 包 platzom-jc 是一个用于字符串转换的工具库,可以将传入的字符串根据一定的规则进行转换,从而得到一个新的字符串。在前端开发中,字符串转换是一个非常常见的操作,因此掌握这个工具库...

    3 年前
  • npm 包 makecommerce-sdk 使用教程

    介绍 makecommerce-sdk 是一款前端工具库,它可以帮助开发者快速集成与 makecommerce 平台对接的功能。makecommerce 平台是一款全面的电子商务解决方案,它包含了购物...

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

    介绍 react-image-capture 是一个用于拍摄照片和视频的 React.js 组件。这个组件可以让你的网页应用程序更加交互性,提供更多的用户体验。它可以用于制作在线摄像头应用,照片合成应...

    3 年前
  • npm 包 idle-angular2 使用教程

    前言 在前端开发过程中,我们常常会使用一些第三方库和框架来简化我们的工作流程。而 npm 就是这样一个方便的工具,可以让我们轻松地管理和使用众多的开发资源。 在本文中,我们将介绍如何使用 idle-a...

    3 年前
  • npm 包 rpc-lite-web 使用教程

    npm 包 rpc-lite-web 使用教程 简介 rpc-lite-web 是一款前端用于进行远程函数调用的 npm 包,这个包简单易用,提供了通用的 RPC 接口。

    3 年前
  • npm 包 `tb-social-googleplus` 使用教程

    tb-social-googleplus 是一个帮助开发者快速集成 Google+ 分享功能到网站中的 npm 包。Google+ 是一款非常具有社交性的平台,如果你的网站需要分享的功能,那么这个 n...

    3 年前
  • npm 包 tb-social-facebook 使用教程

    在前端开发中,社交媒体是一个非常重要的部分。在网站或应用程序中,Facebook 网页社交插件已经成为一个通用的实现方式。这时候,我们就可以考虑使用 tb-social-facebook npm 包来...

    3 年前
  • npm 包 tb-social-linkedin 使用教程

    在前端开发中,社交链接是非常重要的组成部分。LinkedIn是一个专业社交平台,对于很多职场人士来说,使用LinkedIn来联系人脉和寻找工作机会是很普遍的。在一个网站中加入LinkedIn的链接,可...

    3 年前
  • npm 包 ti-apptest 使用教程

    前言 在前端开发中,测试是不可或缺的一个环节。而自动化测试是提高测试效率和质量的一个重要手段。ti-apptest 就是一个可以帮助前端开发人员进行自动化测试的 npm 包。

    3 年前

相关推荐

    暂无文章