npm 包 redux-starter-kit 使用教程

什么是 redux-starter-kit

redux-starter-kit 是一个官方支持的用于简化 Redux 开发的工具包。它集成了常用的工具和规范,如 immer、Redux DevTools Extension 和 代码拆分。

redux-starter-kit 可以大量减少 Redux 的样板代码,极大地提高开发效率和代码质量。同时,它也支持更好的 TypeScript 集成,可以让使用 TypeScript 的开发者更好地享受 Redux 的便利。

安装

你可以使用 npm 或者 yarn 安装 redux-starter-kit 包。

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

- --

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

使用

redux-starter-kit 提供了一个 configureStore 函数来替代 Redux 标准库中的 createStore 函数。这个函数需要一个对象作为参数,包含以下内容:

  • reducer:Redux 的根 reducer,可以是一个由多个 reducer 组成的对象。
  • middleware:一个或多个 Redux middleware,可以是一个数组或是一个函数。
  • devTools:一个对象,用于配置 Redux DevTools 扩展的使用。
  • preloadedState:一个初始的 state 对象,可以不提供。如果提供了这个选项,就会在 createStore 的初始化时使用这个对象作为默认值。

以下是一个简单的示例:

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

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

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

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

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

在这个示例中,我们使用了 createSlice 函数来创建了一个名为 counter 的 reducer 和它的 actions,分别是 incrementdecrement。然后,我们使用 configureStore 函数来创建了一个 store,并将 counter reducer 作为 参数传递给了这个函数。

immer.js 支持

redux-starter-kit 默认使用 immer.js 作为 state 更新工具。使用 immer.js 只需要在 reducer 中直接改变 state,而不用写冗长的 switch-case 语句来对每个 action 进行处理。

以下是一个示例:

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

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

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

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

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

在这个示例中,我们仍然使用了 createSlice 函数来创建了一个名为 counter 的 reducer 和它的 actions,分别是 incrementdecrement。但是,我们在 reducer 中直接改变了 state,而不用写冗长的 switch-case 语句,这是因为 redux-starter-kit 默认使用了 immer.js

使用 middleware

redux-starter-kit 支持在 configureStore 函数中指定一些 middleware,来对 action 进行处理。以下是一个示例:

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

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

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

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

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

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

在这个示例中,我们定义了一个 loggerMiddleware,它用于在 action 被 dispatch 后输出日志信息。然后,我们将这个 middleware 添加到了 configureStore 的选项中。

Redux DevTools 扩展

redux-starter-kit 默认支持 Redux DevTools 扩展,并提供了一个默认的 devTools 选项来集成 Redux DevTools 扩展。你可以通过设置这个选项来自定义 Redux DevTools 的配置信息。以下是一个示例:

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

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

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

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

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

在这个示例中,我们使用了 devTools 选项来更改了 Redux DevTools 的配置信息。我们修改了扩展的名称为 “My App”,并将 action 黑名单中的 DECREMENT action 从跟踪中移除。

结语

redux-starter-kit 是一个非常好用的 Redux 工具包,可以帮助你快速地写出高质量的 Redux 代码。使用它可以极大地提高 Redux 的开发效率和代码质量。我们在开发中建议使用 redux-starter-kit,让我们的代码更加简洁易懂,提高项目的可维护性和可读性。

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


猜你喜欢

  • npm 包 fis-optimizer-smarty-xss 使用教程

    前言 XSS(跨站脚本攻击)一直是互联网安全中的一个重要问题。在前端开发中,为了防止 XSS 攻击,我们需要对前端的输出进行过滤。fis-optimizer-smarty-xss 是一款适用于前端输出...

    4 年前
  • npm 包 fis-prepackager-widget-inline 使用教程

    前言 前端开发需要用到很多工具和框架,而 npm 是其中一个不可或缺的工具。本文主要介绍 npm 包 fis-prepackager-widget-inline 的使用方法,该工具可以将静态页面中的资...

    4 年前
  • npm 包 fis-preprocessor-extlang 使用教程

    在前端开发过程中,我们经常会使用 fis3 构建工具对项目进行管理和打包。在这个过程中,我们可能需要对一些特定的语言或格式进行处理,比如将 stylus 文件编译成 css 文件,或者将某些特定语法转...

    4 年前
  • npm 包 trace-console-log 使用教程

    在开发 Web 应用时,我们经常需要在控制台打印日志信息来帮助我们调试,但是我们可能会在代码中打印了太多的日志信息,导致控制台输出混杂不清。此时,我们需要一种工具来帮助我们快速定位到需要的日志输出,而...

    4 年前
  • Simple-rpc-protocol 的使用教程

    在前端开发中,往往需要完成远程调用,以及在客户端和服务器端之间进行数据交换。而 Simple-rpc-protocol 正是为这种场景而设计的。它是一个实现 RPC 通信的 npm 包,具有结构简单,...

    4 年前
  • npm 包 @arso-project/sonar-ui 使用教程

    简介 @arso-project/sonar-ui 是一个基于 Vue.js 和 ElementUI 的 UI 组件库,旨在提供一套常用的企业级前端 UI 组件,帮助开发者提高开发效率和代码质量。

    4 年前
  • npm 包 @arso-project/sonar-dat 使用教程

    什么是 @arso-project/sonar-dat @arso-project/sonar-dat 是一个用于 SonarQube 数据访问的 Node.js 模块。

    4 年前
  • npm 包 @arso-project/sonar-client 使用教程

    在前端开发中,我们经常需要对网站的性能、安全、可靠性等方面进行监控和评估,以便及时发现和解决问题。而 Sonarqube 是一个广泛使用的开源代码质量评估平台,可以帮助我们更好地管理和维护我们的应用程...

    4 年前
  • npm 包 @arso-project/sonar-cli 使用教程

    简介 Sonar-CLI 是一个由 @arso-project 开发的命令行工具,用于分析前端项目的性能并提供优化建议。这个 npm 包允许开发者通过配置文件来运行 Sonar-CLI,并将分析结果输...

    4 年前
  • npm 包 mock-private-registry 使用教程

    如果你是一个前端开发者,并且平时也用到一些 npm 包,那么你一定会发现一个问题,就是某些 npm 包在国内下载速度非常慢,甚至下载失败。这是因为某些 npm 包在国内被墙了,导致我们无法顺利地下载和...

    4 年前
  • npm 包 latest-version2 使用教程

    在前端开发中,我们常常需要使用各种 npm 包来帮助我们完成项目中的一些任务。其中,获取最新版本号是一个经常用到的功能,因为我们需要确保我们应用程序使用的是最新的库版本。

    4 年前
  • npm 包 @snyk/configstore 使用教程

    在前端开发过程中,很多时候我们需要通过一些配置文件来管理我们的项目。而在配置文件的操作过程中,npm 包 @snyk/configstore 已经成为了一个非常常用的工具,因为它可以帮助我们更方便的操...

    4 年前
  • npm 包 eslint-plugin-adonis 使用教程

    简介 Eslint 是一款用于检查代码质量的工具,而 eslint-plugin-adonis 则是用于 AdonisJS 框架的 Eslint 插件。本篇文章介绍如何使用 npm 安装并配置 esl...

    4 年前
  • npm 包 dot-only-hunter 使用教程

    在前端开发过程中,常常需要操作对象中的指定属性,比如遍历对象,输出属性等等。而 dot-only-hunter 是一个可以用于深层次查找对象中指定属性的 npm 包。

    4 年前
  • npm 包 @garygrossgarten/cli 使用教程

    介绍 @garygrossgarten/cli 是一个轻量级的命令行界面构建工具,它可以帮助你快速地开发、管理并测试命令行应用程序。使用 @garygrossgarten/cli,你可以轻松地创建、组...

    4 年前
  • npm 包 @blick.dev/app 使用教程

    简介 npm 是一个包管理器,提供了大量的第三方库和工具,涵盖了各种不同的领域。@blick.dev/app 是一款前端包,为前端开发者提供了强大的工具集,可以快速地构建应用程序。

    4 年前
  • npm 包 platform-folders 使用教程

    在开发前端应用程序时,我们常常需要访问操作系统的文件系统来读写文件或者查找用户的文档目录等。然而,不同的操作系统可能有不同的文件系统结构和默认目录,这就给我们的开发带来了一定的麻烦。

    4 年前
  • npm 包 @gfx/zopfli 使用教程

    什么是 @gfx/zopfli @gfx/zopfli 是一个基于 zopfli 算法的 npm 包,提供了压缩文件和数据的能力。zopfli 算法是 Google 开发的一种无损压缩算法,在保证数据...

    4 年前
  • npm 包 @anireact/typescript 使用教程

    简介 在前端开发中,TypeScript 已经成为越来越受欢迎的开发语言,它可以提供更好的类型检查和代码提示,以及更好的类型安全。而 npm 包 @anireact/typescript 就是一个很好...

    4 年前
  • npm 包 @anireact/prettier-config 使用教程

    什么是 prettier? Prettier 是一个代码格式化工具,能够自动格式化代码,让代码风格一致,减轻代码编写时的工作量,防止低级问题(如多余的空格、不正确的缩进等)。

    4 年前

相关推荐

    暂无文章