npm 包 ngmrx 使用教程

前言

在构建大型前端应用中,状态管理是非常关键的一项工作。ngmrx 是一个基于 Redux 的 Angular 状态管理库,提供了简洁的 API 和强大的功能,可以帮助我们更好地管理应用中的状态数据。本文将详细介绍 ngmrx 的使用方法和实战指导。

安装

首先,我们需要安装 ngmrx。在终端中执行以下命令即可安装 ngmrx:

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

ngmrx 核心概念

在使用 ngmrx 之前,我们需要了解一些核心概念:

Store

Store 是应用中唯一的状态数据源。它通过提供 dispatch 方法来触发 state 的更新。我们可以通过 selector 来读取 state 的值。

Action

Action 是一个包含 type 属性的简单对象,用于描述 state 的变化。我们可以在组件中 dispatch 一个 action,并通过 reducer 处理该 action。

Reducer

Reducer 是一个纯函数,它接收一个旧的 state 并返回一个新的 state。在 reducer 中处理 action 并返回一个新的 state,是更新 state 的主要途径。

Selector

Selector 是一个函数,它用于从 state 中读取数据。selectors 的主要作用是缓存 state 的值,避免在 render 时无意义的重新计算。

ngmrx 实战应用

我们来看一个简单的实战例子。

创建一个 Store

首先,我们需要创建一个 Store。使用 NgStore 类来创建一个 Store:

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

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

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

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

在这里,我们创建了一个名为 store 的 Store,它的 state 包含一个名为 count 的属性,并且初始值为 0。

Dispatch 一个 Action

我们需要创建一个 Action,用于更新 store 中的 count。使用 NgAction 类来创建一个 Action:

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

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

这里,我们创建了一个名为 incrementCount 的 Action,它的 type 属性为 'INCREMENT_COUNT'。

我们可以在组件中 dispatch 该 Action:

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

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

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

在这里,我们创建了一个名为 CounterComponent 的组件,其中 count 的值从 store 中读取,用户点击按钮时会 dispatch 一个名为 incrementCount 的 Action。

处理 Action

我们需要创建一个 reducer 来处理 Action。使用 NgReducer 类来创建一个 reducer:

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

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

在这里,我们创建了一个名为 countReducer 的 reducer,它接收一个旧的 state 和一个 action 并返回一个新的 state。

在这个例子中,我们只处理了一个名为 incrementCount 的 Action。当这个 Action 被 dispatch 时,会让 count 的值加 1。

我们需要将该 reducer 添加到 store 中:

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

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

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

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

这样,当我们 dispatch incrementCount Action 时,就会触发 countReducer 并更新 store 中的 count 值。

读取 Store 中的数据

我们可以使用 selector 从 store 中读取数据:

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

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

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

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

在这里,我们创建了一个名为 selectCount 的 selector,它接收一个 AppState 对象并返回 count 属性的值。在组件中,我们使用 store.select 方法来将 selectCount 这个 selector 绑定到组件的 count$ 属性上,这样每当 store 的 state 更新时,count$ 属性就会自动更新。

在模板中,我们使用 count$ 属性来显示 state 中的值:

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

结语

ngmrx 提供了简洁的 API 和强大的功能,可以帮助我们更好地管理应用中的状态数据。通过深入了解 ngmrx 的核心概念和实际应用,可以让我们更高效地进行大型项目的开发。

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


猜你喜欢

  • npm 包 julien-proxy 使用教程

    在前端开发过程中,经常需要模拟接口数据或者通过代理转发请求,这时候就需要借助于工具来实现。julien-proxy 是一款基于 Node.js 的代理工具,可以方便地配置代理规则,支持多种匹配方式,同...

    2 年前
  • npm 包 mjlescano-material-ui 使用教程

    概述 mjlescano-material-ui 是一个基于 React 的 UI 框架,可以快速构建前端页面。它提供了大量的组件,包括按钮、输入框、下拉菜单、表格等,可以轻松实现各种界面效果。

    2 年前
  • npm 包 modulz-badge 使用教程

    简介 modulz-badge 是一个使用纯 CSS 创建徽章的 npm 包,由 Modulz 公司开发,可以帮助开发者在前端页面中快速创建类似 Github 项目的徽章样式。

    2 年前
  • npm 包 tonal-pcset-dft 使用教程

    在前端开发中,我们常常需要进行音频处理,而 tonal-pcset-dft 就是一个方便易用的 npm 包,用于计算一个音符集合的离散傅里叶变换。本文将介绍如何使用 tonal-pcset-dft 包...

    2 年前
  • npm 包 @jstiller/dom 使用教程

    前言 在前端开发中,我们经常需要操作 DOM 元素,实现页面的动态效果和交互,但原生的 DOM API 可能会不够方便易用,这时候我们可以借助一些工具库来简化开发流程。

    2 年前
  • npm包generator-rush使用教程

    简介 generator-rush是一个基于Yeoman生成器的开发框架,用于快速搭建前端项目开发环境。这个框架使用了多种流行的前端工具,例如Gulp、Bower、Webpack等等。

    2 年前
  • npm包r2middleware使用教程

    在前端开发中,使用npm包管理器是一种很常见的方式,它可以帮助我们便捷地管理项目中的依赖。其中,r2middleware是一款非常优秀的npm包,它可以帮助我们更加高效地开发和测试。

    2 年前
  • npm 包:rgb-to-hsv 使用教程

    在前端开发中,我们经常需要处理颜色相关的逻辑。其中,将 RGB(红绿蓝)值转换成 HSV(色相饱和度亮度)值是一个比较常见的需求。但是,这个转换过程并不是很好实现,因此有些优秀的程序员为我们提供了便捷...

    2 年前
  • npm 包 unicode-emoji-parser 使用教程

    前言 随着移动互联网的普及和社交网络的发展,表情包越来越成为人们表达情感的重要方式。然而,在前端开发中,处理表情包仍然是一个挑战。因为在 JavaScript 中,表情包是以 Unicode 编码字符...

    2 年前
  • npm 包 mailchimp-nodejs 使用教程

    前言 Mailchimp 是一家提供电子邮件营销服务的公司,旨在帮助企业建立并维护自己的电子邮件列表,从而与其客户保持联系。而 mailchimp-nodejs 则是一个基于 Node.js 的 np...

    2 年前
  • npm 包 isvar 使用教程

    介绍 在前端开发中,经常需要进行数据类型判断、甚至是变量类型的转换。而 npm 包 isvar 便提供了一种简单的解决方案。 isvar 判断的类型包括:undefined、null、boolean、...

    2 年前
  • 如何使用 npm 包 ngx-infinite-scroll-extended 来实现滚动加载

    介绍 ngx-infinite-scroll-extended 是一个基于 Angular 的 npm 包,它可以让我们实现一种十分实用的功能——滚动加载。滚动加载可以让长页面内容的加载更流畅,而不是...

    2 年前
  • npm 包 node_relay_client 使用教程

    前言 随着前端技术的不断发展,前端应用变得越来越复杂,需要与后端服务进行频繁的数据交互。在这些应用中,使用 WebSocket 客户端以及服务器 API 是很常见的。

    2 年前
  • npm 包 generator-gunbot 使用教程

    如今,前端开发工程师越来越依赖于 npm 包管理器来管理项目依赖。而 generator-gunbot 是一个 npm 包,能够为你的前端项目快速生成基础骨架和脚手架。

    2 年前
  • npm 包 ts-brunch 使用教程

    前端开发过程中,使用构建工具能够提高代码的可维护性和开发效率,而 ts-brunch 是一个基于 Brunch 构建的 TypeScript 编译器,可以帮助我们更好地管理 TypeScript 项目...

    2 年前
  • NPM 包 lsx-select 使用教程

    在前端开发中,我们经常需要使用到下拉框组件,但是在不同的项目中,下拉框的样式和功能都有一些不同。如果每次都需要重新造轮子,那么显然会浪费很多时间和精力。这时候,就可以使用现成的 NPM 包来快速地实现...

    2 年前
  • npm 包 babelserver 使用教程

    简介 babelserver 是一个 npm 包,它提供了在 Node.js 中使用 Babel 进行实时编译的功能。它支持实时编译 JavaScript、CSS、HTML 和其他类型的文件,并且可以...

    2 年前
  • npm 包 portel 使用教程

    在前端开发中,我们经常需要使用第三方库来完成特定的功能,而 npm 是前端领域最流行的包管理器之一。在这篇文章中,我们将介绍一个非常实用的 npm 包 portel,并详细讲解如何使用。

    2 年前
  • npm包newman-reporter-junit-extended使用教程

    newman-reporter-junit-extended是一款新一代的npm包,用于生成Junit测试报告。它具有易于使用、高效、稳定等优点,被广泛用于前端测试开发中。

    2 年前
  • npm 包 cleverio 使用教程

    介绍 npm 是世界上最大的软件包管理器,它提供了超过 1.2 亿个 JavaScript 包供开发者使用。cleverio 是一个针对前端开发者的 npm 包,它提供了一系列强大的工具和框架,帮助开...

    2 年前

相关推荐

    暂无文章