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


猜你喜欢

  • npm 包 tap-bamboo 使用教程

    介绍 npm 包 tap-bamboo 是一个基于 tap 协议的测试工具,可用于测试前端代码。它支持在终端输出测试结果和生成多种格式的测试报告,同时还可以与 Bamboo 等持续集成工具配合使用。

    3 年前
  • npm 包 db2sock-itoolkit 使用教程

    简介 npm 包 db2sock-itoolkit 提供了一个方便的工具集,用于在 Node.js 应用程序中直接与 IBM i 数据库进行通信。它使用了 db2sock 协议,该协议是一种轻量级的 ...

    3 年前
  • npm 包 generic-component-library 使用教程

    在前端开发中,组件化是一种现代化的开发方式,能够帮助我们有效地管理代码库,提高代码重用率。而 npm 是一个非常流行的包管理工具,方便我们在项目中引入需要的代码包。

    3 年前
  • npm 包 ng-datefns-pipes-all-locales 使用教程

    前言 随着移动互联网的不断发展,Web 前端技术的应用也越来越广泛,各种开发工具与框架层出不穷,而 npm 作为目前最流行的包管理器之一,更是为我们的开发提供了便利,通过 npm 我们可以轻松地安装各...

    3 年前
  • npm 包 sass-pass 使用教程

    前言 在前端开发中,我们常常会使用 Sass 语言来预处理 CSS 样式。而在 Sass 中,我们又经常会需要使用 mixin、function 等特性来提高开发效率。

    3 年前
  • npm 包 skewered 使用教程

    简介 skewered 是一个用于处理前端图像扭曲效果的 npm 包。通过对图像进行一定程度上的扭曲处理,可以达到一些生动、有趣并且独特的视觉效果。在很多前端实现中可以看到其应用,比如图片背景、卡片翻...

    3 年前
  • npm 包 sql-escape-string 使用教程

    随着前端技术的发展,前端的功能也越来越强大,学习前端开发也成为越来越多人的选择。在前端开发中,我们需要经常处理数据库相关的操作,其中一个重要的问题就是如何防止 SQL 注入攻击。

    3 年前
  • npm 包 travis-ci-sample 使用教程

    什么是 travis-ci-sample? travis-ci-sample 是一个 npm 包,它提供了一个用于演示 Travis CI 如何在 Node.js 项目中工作的 Node.js 应用程...

    3 年前
  • npm 包 humble-modal 使用教程

    在前端开发中,弹窗组件是非常常用的一种组件,它能够方便地实现一些交互效果。而 humble-modal 就是一款优秀的弹窗组件 npm 包。在本文中,我们将详细介绍如何使用 humble-modal ...

    3 年前
  • npm 包 @bordman1/vue-auth 使用教程

    #npm 包 @bordman1/vue-auth 使用教程 ##介绍 @bordman1/vue-auth是一个适用于Vue.js项目的认证模块。它提供了身份验证、登陆、登出、注册等功能。

    3 年前
  • npm 包 @coreuipro/styles 使用教程

    在前端开发中,我们经常需要使用一些样式库来快速构建页面,其中 @coreuipro/styles 是一个非常优秀的样式库,它提供了丰富的 UI 组件和样式,让开发者能够快速构建出美观的网页。

    3 年前
  • npm 包 complexity-marker 使用教程

    在日常的前端开发中,我们经常需要评估我们代码的复杂度,以便更好地进行代码优化及维护。而 complexity-marker 是一个非常有用的 npm 包,其可以帮助我们更好地评估我们的代码的复杂度。

    3 年前
  • npm 包 generator-apparena-react-component 使用教程

    前言 在前端开发中,使用 React 组件已经成为一个主流的开发方式,我们常常需要编写许多组件来满足我们特定的需求。在编写组件时,我们需要考虑诸如组件结构、样式、测试等方面,这些工作可能很繁琐。

    3 年前
  • npm 包 codeff 使用教程

    简介 codeff 是一个基于 JavaScript 的 NLP 库,它提供了许多用于文本分析和处理的工具和函数。它支持情感分析、文本分类、关键词提取等多种功能。 安装 使用 npm 可以很容易地安装...

    3 年前
  • npm 包 ajax-vue-components 使用教程

    ajax-vue-components 是一个适用于 Vue.js 的 AJAX 组件,其通过 AJAX 请求从服务器端获取数据,并且通过组件的形式来展示该数据。ajax-vue-components...

    3 年前
  • npm 包 coreio-service-test 使用教程

    在前端开发中,npm 包是必不可少的组成部分之一。其中,coreio-service-test 是一款非常实用的 npm 包,本文将为大家介绍如何使用它进行前端测试。

    3 年前
  • npm 包 tram-lib 使用教程

    在前端开发中,我们经常会使用到一些第三方的库和框架来帮助我们完成更好的效果和交互体验。而 npm 是一个非常流行的包管理器,它为我们提供了海量的工具包和库。 其中,tram-lib 是一个轻量级的 J...

    3 年前
  • NPM包 Ngx-Splash 使用教程

    前言 在现今快节奏的移动应用中,很多应用程序需要在启动时展示一个自定义的 Splash 界面。对于前端开发人员来说,如何在应用程序中实现一个有良好用户体验的启动界面是一个不容忽视的问题。

    3 年前
  • npm 包 showcar-ads 使用教程

    前言 showcar-ads 是一款基于 JavaScript 的 npm 包,主要功能是在网页上展示广告。广告是网站盈利的重要方式之一,使用 showcar-ads 可以节省广告的开发和管理时间,提...

    3 年前
  • npm 包 react-native-locale-utils 使用教程

    介绍 react-native-locale-utils 是一个 React Native 库,提供了一组工具函数,以便开发者可以更轻松地处理和管理本地化设置。在本文中,我们将深入探讨如何使用这个库来...

    3 年前

相关推荐

    暂无文章