npm 包 redux-promise-memo 使用教程

简介

redux-promise-memo 是一个基于 Promise 的 redux 状态管理工具,它可以帮助开发者优化的 redux store 状态变化的性能。我们知道一个状态管理的工具,他的性能考虑也非常重要。redux-promise-memo 可以实现store 记忆功能,避免重复的渲染,提高用户体验。

安装

你可以使用 npm 进行安装。

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

开始使用

在项目中引入 redux-promise-memo 包

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

memo 函数将会根据每一次 action 的 type 和 payload,缓存 store 计算得到的结果,当下一次 action 的 type 和 payload 相同时,会直接返回缓存中的结果,而不会再次执行计算得到结果。

使用示例

我们假设我们有这样一个场景:当用户搜索时,返回一个关于搜索词的商品列表,当用户重新搜索时,需要避免重复的计算。我们可以使用 redux-promise-memo 解决这个问题。

假设我们有一个搜索的 reducer。

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

以上 redux reducer 实现了当搜索时的 product state 更新。在产品代码中,我们可以使用 redux-promise-memo 优化这个过程。

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

在上面的代码 snippet 中,我们为 store 传递了 memo 函数,memo 中 cache 会缓存上一次 reducer handler 执行的结果,如果当前的 state 中没有任何更改,store 将直接返回缓存中的结果,而无需重新计算状态。

结尾

记得使用 redux-promise-memo,可以避免重复的计算,提高渲染性能,更好的为用户提供良好的用户体验。

希望这篇文章对你有所帮助,如果你有不懂的地方或者有其他的想法,欢迎在评论区留言。

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


猜你喜欢

  • npm 包 @nicktomlin/typescript-library-example 使用教程

    概述 @nicktomlin/typescript-library-example 是一个使用 TypeScript 编写的库开发示例,旨在帮助前端开发者了解如何编写一个符合 TypeScript 规...

    3 年前
  • npm 包 @tableflip/react-inspector 使用教程

    在前端开发中,有时候我们需要查看一个对象或者数组的属性和值,以方便我们调试和开发。这时候可以使用 npm 包 @tableflip/react-inspector 来帮助我们查看一个对象或者数组的属性...

    3 年前
  • npm 包 splitwise-node-rn 使用教程

    在前端开发中,我们经常需要调用外部的 API 来获取数据并进行相应操作。其中,Splitwise 是一个流行的账单分摊应用,我们可以使用它的 API 来实现账单数据的获取和管理。

    3 年前
  • npm 包 solz 使用教程

    npm 包 solz 使用教程 solz 是一款基于 JavaScript 的工具库,提供了许多实用的、高效的函数,能够帮助开发者更好地完成前端项目。在本文中,将会详细介绍 solz 的使用方法,以及...

    3 年前
  • npm 包 x-secrets 使用教程

    什么是 x-secrets? x-secrets 是一个用来处理敏感信息的 npm 包。在前端开发中,我们经常需要处理一些敏感信息,比如 API Key, Access Token,密码等等。

    3 年前
  • npm 包 egg-bookshelf 使用教程

    前言 egg-bookshelf 是一款基于 Egg.js 的 ORM 框架,提供了类似于 Ruby on Rails 中 ActiveRecord 功能。它可以让前端开发者更加方便地与数据库交互,使...

    3 年前
  • npm 包 flacheql 使用教程

    前言 随着前端技术的发展,前端工程化变得越来越重要。在前端工程化领域,npm 是广泛使用的包管理工具之一。在 npm 上,有许多优秀的第三方包可以帮助我们提高开发效率和代码质量。

    3 年前
  • npm 包 indexed-db-as-promised 使用教程

    什么是 indexed-db-as-promised indexed-db-as-promised 是一个 npm 包,它提供了一个简单易用的 API 来在前端页面中访问浏览器内置的 indexedD...

    3 年前
  • npm 包 testcafe-reporter-slack-errors 使用教程

    简介 testcafe-reporter-slack-errors 是一个可以将 TestCafe 测试中的错误信息发送到 Slack 的 npm 包。这个工具可以帮助团队更好地跟踪测试结果,及时发现...

    3 年前
  • npm 包 db-devcamp-js-footer 使用教程

    简介 db-devcamp-js-footer 是一个开源的前端库,用于在网页底部添加一个固定的页脚。该库使用简单,方便于大家快速构建美观的网页。 安装 在使用该库之前,我们需要先安装 npm 包。

    3 年前
  • npm 包 duil 使用教程

    什么是 duil duil 是一个基于 Vue.js 的前端组件库,它提供了一些常见的 UI 组件,如按钮、输入框、表格等,可以方便地集成到你的前端项目中。duil 还提供了许多可扩展的插件和主题,可...

    3 年前
  • npm 包 etool-build 使用教程

    前言 etool-build 是一款基于 webpack 打包工具的前端自动化构建工具,它提供了一系列可扩展的插件,可以非常方便地进行前端工程化开发。 在使用 etool-build 之前,你需要掌握...

    3 年前
  • npm 包 ng-diff-match-patch-att 使用教程

    ng-diff-match-patch-att 是一个基于 diff-match-patch 的 AngularJS 库,用于在两个字符串之间进行比较,并显示出包含更改的部分。

    3 年前
  • npm 包 simple-random-string 使用教程

    在前端开发中,随机字符串是一个经常使用的功能,而 npm 包 simple-random-string 可以帮我们轻松生成随机字符串,下面就来详细介绍一下如何使用 simple-random-stri...

    3 年前
  • npm 包 vue-typescript-util 使用教程

    简介 vue-typescript-util 是一个 Vue.js 的 TypeScript 实用工具库,它提供了一些有用的功能和工具,以帮助您更轻松地编写 TypeScript 代码。

    3 年前
  • npm 包 vue-mobile-debug 使用教程

    简介 vue-mobile-debug 是一个针对移动端开发的 Vue 调试工具,其作用在于方便开发者在移动设备上进行 Vue 项目的调试和测试。vue-mobile-debug 是一个基于本地服务器...

    3 年前
  • npm 包 @finndropstudios/eslint-config 使用教程

    介绍 @finndropstudios/eslint-config 是一种 ESLint 配置,它提供了一组规则,以便您能够在您的项目中使用标准的 JavaScript 代码风格。

    3 年前
  • npm 包 @finndropstudios/stylelint-config 使用教程

    介绍 stylelint 是一个强大的 CSS linter,可以帮助开发者规范化编写 CSS 代码。而 @finndropstudios/stylelint-config 则是一种 stylelin...

    3 年前
  • npm 包 cjs4esm 使用教程

    在前端开发中,我们常常使用各种 npm 包来帮助开发和优化效率。然而,在使用这些 npm 包的过程中,我们可能会遇到一些问题,例如代码兼容性等。 cjs4esm 包可以帮助我们将 CommonJS 模...

    3 年前
  • npm 包 i18n-yummy 使用教程

    在进行多语言开发时,常常需要使用到国际化库,而 i18n-yummy 正是一个轻量级的国际化库,高度可定制化,特别适用于 React 资源。 安装 i18n-yummy 你可以通过 npm 进行安装:...

    3 年前

相关推荐

    暂无文章