npm 包 redux-orm-angular 使用教程

在前端开发中,管理数据非常重要。Redux-ORM 是一个使用类似关系数据库的方式来管理数据的 JavaScript 库,它可以与 Redux 配合使用,帮助我们更方便地管理数据。而 redux-orm-angular 是一个为了 Angular 开发者们方便使用 Redux-ORM 而开发的 npm 包。本文将介绍 redux-orm-angular 的使用方法及示例。

安装

首先,我们需要在项目中安装 redux-orm 和 redux-orm-angular:

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

接下来,我们需要在 AppModule 中导入 ReduxModule 和 ReduxOrmModule:

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

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

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

其中,ReduxModule 是 Angular Redux 的核心模块,ReduxOrmModule 是 redux-orm-angular 的模块,Angluar 通过它来集成 redux-orm。

定义 model

在 Redux-ORM 中,最重要的部分是我们如何定义数据模型(model)。

例如,我们定义一个 User 模型,包含了一个标题和一个文本,代码如下:

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

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

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

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

其中,Model 和 attr 是 redux-orm 提供的类和装饰器。modelName 是一个自定义的字符串,代表该模型的名称,方便其他地方引用。fields 是一个对象,用于指定该模型的属性及其类型。有了定义好的模型之后,我们可以定义 reducer,如下所示:

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

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

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

这里我们需要注意,如果我们要使用 redux-orm-angular,我们需要额外导出我们的 reducers:

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

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

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

集成到 Angular 中

通过上述代码,我们已经定义好了 User 模型以及 reducer。接下来,我们需要在 app.module.ts 中配置 redux-orm-angular:

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

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

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

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

注意到我们需要将我们的 reducer key 和 reducer key 对应的 reducer 传递给 store。

现在,我们的 Redux-ORM 已经被配置好了!我们可以在我们的 Angular 组件中使用这些模型,并进行增删改查操作。

示例

定义好 model 以及 reducer 并不是我们在 Angular 中使用 Redux-ORM 的全部,我们还需要将我们的 Action 和 Reducer 与 Angular 中的组件进行集成。

假设我们需要进行收藏管理,那么我们可以新建一个 Favorites 组件,它使用 Favorite 模型进行数据管理。

Favorites.component.ts:

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

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

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

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

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

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

其中,我们使用了 NgRedux 服务提供者以及 FavoriteActions。这里需要自己定义这些我们需要的 Action。我们可以通过 dispatch 向 Redux 发送 Action。同时,我们还需要订阅 OBS 从 Redux 获取数据。

FavoriteAction.ts:

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

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

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

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

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

这三个 Action 与我们在 Favorite 组件中调用的 deleteFavorite、createFavorite、loadFavorites 相对应,分别为删除、创建、获取收藏。

有了以上代码,我们就可以在 Angular 中使用 redux-orm 了。非常简单,是吧?

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


猜你喜欢

  • ngx-bootstrap-1.x-maintain 的使用教程

    简介 ngx-bootstrap-1.x-maintain 是一款基于 Angular 和 Bootstrap 的 UI 库,它提供了许多常用的 UI 组件,如模态框、日期选择器、下拉菜单、分页器等等...

    3 年前
  • npm 包 to-json-tree 使用教程

    to-json-tree 是一个简单易用的 npm 包,可以将 json 数据转换成树状图形式进行展示。它可用于前端项目中的数据可视化,让开发者快速了解和处理数据结构。

    3 年前
  • npm 包 bootstrap4-videoembed 使用教程

    在前端开发中,常常需要使用到视频嵌入功能,而 bootstrap4-videoembed npm 包则提供了一种简单、快捷、美观的方式来实现视频嵌入。本文将介绍如何安装和使用该包。

    3 年前
  • npm 包 apr-apply 使用教程

    什么是 apr-apply apr-apply 是一个 npm 包,它提供了一个高阶函数,可以将一个函数应用于一个数组中的元素。 如何安装 apr-apply 您可以使用 npm 来安装 apr-ap...

    3 年前
  • npm 包 apr-asyncify 使用教程

    在前端开发中,我们常常会使用异步编程来提高应用性能和用户体验。然而,Javascript 的异步编程并不是很简单,需要开发者掌握一些特定的技术,比如 Promise、async/await 等等。

    3 年前
  • npm 包 apr-constant 使用教程

    npm 包 apr-constant 使用教程 在编写前端的过程中,我们有时候需要在代码中引用一些常量,比如配置项、API 地址、错误码等等。为了避免在代码中使用魔法数、魔法字符串等不好维护的方式,我...

    3 年前
  • npm 包 apr-awaitify 使用教程

    简介 apr-awaitify 是一个 Node.js 的 NPM 包,该包可以将使用 Node.js 中回调函数的函数转换为 Promise 对象。它极大地简化了 Node.js 项目开发中使用并...

    3 年前
  • npm 包 cascaderpicker 使用教程

    简介 CascaderPicker 是一个基于 Vue.js 2.0 的级联选择器组件,它支持多级联动,可以应用于省市区、商品分类等选择场景。 安装 你可以通过 npm 来安装 CascaderPic...

    3 年前
  • npm 包 facilmap-client 使用教程

    在前端开发中,我们常常需要使用一些外部的工具、库或是框架来帮助我们更加高效地完成我们的工作。而 npm 包则是其中一种最常用的工具之一。 facilmap-client 是一个非常实用的 npm 包,...

    3 年前
  • npm 包 react-upload-file-fork 使用教程

    随着 Web 应用的日益普及,前端开发越来越受到关注,其中文件上传是经常涉及的需求。为了简化开发者的工作,有很多现成的库和组件,其中 npm 包 react-upload-file-fork 就是一个...

    3 年前
  • npm 包 google-classroom 使用教程

    Google Classroom 是 Google 推出的面向教育场景的一款在线教育服务,它可以帮助教师管理课程、发布作业、与学生交流等。npm 包 google-classroom 可以方便地通过 ...

    3 年前
  • npm 包 webpack-typescript-json-type 使用教程

    随着前端技术的不断更新和发展,Webpack、TypeScript 和 JSON 在前端开发中的应用也越来越广泛。而本文要介绍的 npm 包 webpack-typescript-json-type,...

    3 年前
  • npm 包 rom-tools 使用教程

    在前端开发中,我们经常需要处理二进制数据。而 rom-tools 就是一个基于 Node.js 的 npm 包,提供了一系列处理二进制数据的工具函数。本文将介绍如何使用 rom-tools 包,包括安...

    3 年前
  • npm 包 php-parser-indent 使用教程

    简介 php-parser-indent 是一款可以实现 PHP 代码缩进的 npm 包,它可以帮助开发者更加方便地处理 PHP 代码缩进的问题,节省了大量的时间和精力。

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

    前言 在前端开发人员快速迭代的时代,使用现有的框架和库来提高开发效率已经成为了一种时髦。npm 就是一个很好的工具,它可以帮助您在很短的时间内完成您的前端项目。本文将介绍如何使用 npm 包 seeu...

    3 年前
  • npm 包 apr-dir 使用教程

    简介 Apr-dir 是一个 Node.js 模块,用于以递归方式列出文件夹中的文件。如果您在开发前端应用程序时需要处理大量文件,那么这个包是非常有用的。 在本文中,我们将介绍如何在您的项目中使用 a...

    3 年前
  • npm 包 apr-engine-console 使用教程

    在前端开发中,经常需要对控制台输出进行分析和调试。apr-engine-console 是一款实用的 npm 包,它能够在浏览器控制台中输出可视化的日志信息,并且支持筛选和搜索功能。

    3 年前
  • NPM 包 Tiny Regex Route Resolver 使用教程

    在前端开发中,路由是非常重要的一个概念。为了方便管理路由,我们通常会使用一些路由库,例如 React Router。但是在某些情况下,我们只需要一个简单的路由解析工具,这时候 Tiny Regex R...

    3 年前
  • npm 包 apr-log 使用教程

    什么是 apr-log? apr-log 是一个基于 Node.js 平台的日志库,可用于记录应用程序运行时产生的各种信息。它可以方便地将日志信息输出到控制台、文件、数据库等多个目标,而且具有丰富的配...

    3 年前
  • npm 包 apr-reflect 使用教程

    前言 在前端开发中,我们经常遇到需要在对象或属性上添加注解或元数据的情况。然而 JavaScript 对注解和元数据的支持较弱,这就需要我们自己构建一些工具或者使用现有的 npm 包来解决这个问题。

    3 年前

相关推荐

    暂无文章