npm 包 action-u 使用教程

简介

在前端开发中,调用不同的方法来控制应用的状态、执行操作、处理事件等操作是非常常见的需求,而我们可以使用 Action-u 这个 npm 包来帮忙实现这些功能。

Action-u 是一个适用于 React、Angular、Vue 等现代前端框架的状态管理库。它提供的 API 简单易用,并且易于扩展,可以使我们很方便地编写出优雅、具有极强可复用性的代码。

安装

首先,我们需要在项目中引入 action-u。我们可以通过 npm 来安装它,执行以下命令:

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

快速开始

我们在开始之前,需要理解什么是 action。 在基于 action 的状态管理库中,action 是一个包含了 type 属性的纯对象,这个 type 属性用来描述 action 的类型。在接下来的示例中,我们将会使用计数器应用程序来演示 action-u 的使用方法。

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

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

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

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

当我们执行一个操作时,我们需要 dispatch 一个 action。 在上面的示例中,我们定义了一个 increment 的 action,当 dispatch 这个 action 时,它将会使 count 值加 1。

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

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

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

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

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

我们将上面的 Counter 组件绑定到 redux 中,当用户点击加号,increment action 将会被 dispatch。在 mapDispatchToProps 中我们将 props.increment 绑定到 action increment 上。

详细指南

创建 actions

我们可以通过 createActions 方法来创建 actions。这个方法接收一个 actions 对象和一个可选的初始 state 参数。在 actions 对象中,我们可以定义任意多个 action。

一个 action 包含了 typepayload 两个属性,其中 type 用来描述 action 的类型,payload 用来传递一些数据。

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

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

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

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

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

绑定 actions 和组件

我们可以使用 connect 方法将组件和 state/actions 绑定起来。connect 方法接收两个参数:mapStateToPropsmapDispatchToProps。在这两个方法中,我们可以将 state 和 actions 绑定到组件的 props 上。

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

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

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

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

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

在上面的例子中,我们在 mapDispatchToProps 中将 props.incrementprops.decrement 绑定到 actions.incrementactions.decrement 上。

定义 interface

我们可以使用 interface 方法在 actions 中定义一个接口。interface 方法接收一个参数,一个 actionType 对象,这个对象包含了 typepayload 和其他任意的属性。

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

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

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

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

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

当一个 action 包含了一个 interface 属性时,这个 action 将会被视为一个接口,并且这个接口可以被其他的 action extend。

继承 interface

我们可以通过 extend 方法来继承一个 interface。 extend 方法接收一个参数,这个参数可以是另一个 interface 或者一个 actionType 对象。

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

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

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

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

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

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

在上面的代码中,我们定义了一个 reset 的 action,它扩展了 increment 的 interface。这个 reset action 包含 INCREMENT 的所有属性,并添加了一个 RESET 属性。

总结

Action-u 是一个极其简单易用的前端状态管理库。在这篇文章中我们讲解了 action-u 的使用方法,并给出了一个计数器应用程序的示例代码。下一步,我们可以尝试在自己的项目中使用 action-u,以及在其中添加一些接口和 extend 式 action。

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


猜你喜欢

  • 前端必备:npm 包 @savvy-css/savvy 使用教程

    前言 在前端开发中,样式是非常关键的一部分。为了提高开发效率并且使样式更加规范化,现在市面上出现了许多优秀的 CSS 框架。@savvy-css/savvy 是一个轻量级的 CSS 框架,它提供了一系...

    3 年前
  • npm 包 @vladimir31415/adal-angular5 使用教程

    在前端开发中,经常会涉及到用户认证和授权的问题,为了方便实现这些功能,我们可以使用 @vladimir31415/adal-angular5 这个 npm 包来管理用户身份认证信息。

    3 年前
  • npm 包 element-matches 使用教程

    element-matches 是一个在前端开发中非常有用的 npm 包,它可以方便地判断一个元素是否匹配指定的 CSS 选择器。 在本文中,我们将详细介绍如何使用 element-matches,包...

    3 年前
  • 使用 npm 包 nodejs-qmc5883l

    介绍 nodejs-qmc5883l 是一个 Node.js 的 npm 包,用于操作 QMC5883L 磁力计模块。它提供了简单易用的 API,使得开发者可以轻松操作 QMC5883L 磁力计模块,...

    3 年前
  • NPM 包: Cassete

    NPM 包是一种非常便捷的前端开发工具,它允许我们通过命令行来下载和安装 JavaScript 库和工具。Cassete 是一个非常流行的 NPM 包,它是一个用于 Web 开发的自动化工具。

    3 年前
  • npm 包 clean-git-cli 使用教程

    前言 在进行前端开发过程中,我们通常会使用 Git 进行版本控制和管理代码,但由于 Git 经常会生成一些不必要的文件和文件夹,如 .DS_Store、.idea/、node_modules/ 等等,...

    3 年前
  • npm 包 css-sibling 使用教程

    前言 在前端开发中,我们需要经常处理复杂的 CSS 样式,特别是在处理兄弟元素时,我们需要使用 CSS 选择器中的兄弟选择器。然而,CSS 兄弟选择器并不总是能实现我们想要的效果,以往我们会使用 Ja...

    3 年前
  • npm 包 css-top-import 使用教程

    在前端工程化开发中,我们常常需要引入多个 CSS 文件。但是,不同 CSS 文件之间的引入顺序可能会产生不同的效果,这给前端开发带来了不便。css-top-import 是一个可以解决 CSS 引入顺...

    3 年前
  • npm包 angular-gestures 使用教程

    在前端开发中,手势操作越来越受到重视。而 angular-gestures 是一款基于 AngularJS 的手势处理工具库,可以方便地为页面添加响应式手势。 本文将详细介绍 npm 包 angula...

    3 年前
  • npm 包 meepo-runner 使用教程

    前言 随着前端开发的发展,越来越多的工程化工具被广泛运用于项目开发中,其中 npm 包是前端开发中不可或缺的一环。而 meepo-runner 作为一个 npm 包,在前端开发中也扮演着重要的角色。

    3 年前
  • npm 包 meepo-swiper 使用教程

    前言 在前端开发中,为了更好的提高用户体验,我们经常需要使用一些界面组件,比如轮播图就是一种常见的组件。而 meepo-swiper 就是一个非常好用的轮播图组件,本文将详细介绍如何使用它。

    3 年前
  • npm 包 modules-path 使用教程

    前言 在前端的开发中,我们离不开各种 npm 包,它们为我们提供了非常多的便利。但是,我们在使用 npm 包的时候,有时会遇到一些困惑。比如,在项目中使用了很多 npm 包,但每次引用某个模块时都需要...

    3 年前
  • npm 包 backtothefuture 使用教程

    介绍 backtothefuture 是一个便捷的 npm 包,它能够在 JavaScript 代码中实现类似于电影《回到未来》中的时光旅行效果。使用此包,能够使我们在 JavaScript 中处理时...

    3 年前
  • `read-more-react16` 的使用教程

    本文将介绍一个 npm 包 read-more-react16 的使用教程。该包可以实现在 React 项目中快速搭建阅读更多的功能,并且支持自定义展开、收起的文字和样式。

    3 年前
  • npm 包 @lucjansuski/react-data-grid 使用教程

    简介 @lucjansuski/react-data-grid 是一款基于 React 的表格组件库,为前端开发人员提供了非常便捷的表格数据展示及数据操作功能。该组件库提供了大量可自定义的属性及 AP...

    3 年前
  • npm 包 mitsuketa 的使用教程

    前言 在前端开发过程中,使用各种 npm 包助力我们更快速便捷的完成开发任务。而 mitsuketa 则是一个非常优秀的工具包,它可以帮助前端开发者在 JavaScript 中实现类似于其他语言的异常...

    3 年前
  • npm 包 postiindeksid 使用教程

    随着互联网的发展,地理信息数据对前端开发的重要性越来越高。而邮政编码作为一种常用的地理编码系统,也成为了广大开发者们必须面对的问题之一。在本文中,我们将为大家介绍适用于前端开发的 npm 包 post...

    3 年前
  • npm 包 gitc 使用教程

    前言 在前端工作中,我们经常需要使用到一些工具或库,这时候npm就可以派上用场了。本文介绍一个npm包 gitc,该包提供了一些常用的git操作命令,可以帮助我们更加高效地管理我们的项目。

    3 年前
  • npm 包 threejs-tree-shake 使用教程

    前言 three.js 是一个非常流行的 WebGL 渲染库,常常用于创建三维场景、动画和游戏等,然而它的体积和加载速度却是一个让人头疼的问题。特别是在移动设备和低端设备上,加载速度更加受限制。

    3 年前
  • npm 包 @sarahjs/memory 使用教程

    在前端开发中,我们常常需要对数据进行处理并将其保存在内存中,以便在页面间共享或使用。而 npm 包 @sarahjs/memory 就是一款封装了内存操作的工具包,使其更加易用。

    3 年前

相关推荐

    暂无文章