npm 包 redux-values 使用教程

简介

redux-values 是一个基于 Redux 的状态管理库,在处理应用状态中的对象值时非常有用。它提供了一种简单的方式,将“对象值”作为 redux actions 发送,从而在应用状态中动态地创建和更新对象值。

在本教程中,我们将使用 redux-values 来创建一些简单的对象值并将它们添加到 Redux store 中。

安装

使用以下命令安装 redux-values 包:

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

or

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

创建 redux-values 对象

要使用 redux-values,我们需要使用定义对象(defining object),该对象包含我们要在 Redux store 中存储的值。这个对象应该是普通对象,该对象的键(key)是每个对象值的名称,而值(value)是默认值或包含有关值的任何元数据的对象。例如:

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

在此例子中,我们定义了 user 和 todos 两个对象值。user 包含一个空字符串的名称和一个空值的 id 属性,todos 包含一个空数组的 list 属性和状态为 loading 的 status 属性。

创建 redux-values 动作处理器

接下来,我们需要将 redux-values 与 Redux store 集成。这包括创建动作处理器(reducer),将它们添加到 store 中,并创建动作(actions)来更新和访问保存的值。

我们首先需要创建一个函数(action creator),它允许我们创建一个新的对象值。为了创建动作(action),我们需要传入一个参数,该参数是在定义对象中创建的对象值的名称。例如,对于上述代码中的'user' 值,我们可以创建以下函数:

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

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

createValuesAction 函数返回一个函数,该函数接受一个新值(new value)参数,并创建一个更新给定对象值的动作。

将动作处理器添加到 Redux store

我们现在可以创建我们的动作处理器了。 它应该是一个普通的 Redux 动作处理器,它正确地更新我们定义的对象值。 如果您不熟悉 Redux 动作处理器,请阅读官方文档

以下是我们的示例动作处理器:

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

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

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

您会注意到我们传入了一个名为 values 的对象。它就是我们在前一步定义的那个 values 对象。

我们将调用 handleValues 函数来更新 redux state,这个函数接收三个参数:

  • state: 当前状态
  • values: 包含要管理的对象的定义对象
  • action: 发送的动作(通常是一个 Reducer 函数中的参数)

我们的 reducer 维护一个INITIAL_STATE 变量,该变量是一个包含我们的对象值的所有键的空对象。 在这里,我们使用 handleValues 函数来处理此值。

该处理器将返回一个新状态(next state),其中的键(key)是定义对象中键的名称,而值(value)是在动作中更新的值。

创建新动作处理器的例子

使用 setUser 做例子,演示如何使用 redux-values 来创建和更新应用程序状态。

首先,我们需要将 setUser 函数添加到我们的 mapDispatchToProps 中:

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

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

现在,我们可以将 user 对象值添加到 Redux store 中:

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

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

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

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

该代码定义了一个 React 组件,在其中我们可以使用更新对象值的两种方法:

  • 通过在用户输入时更新 user.name(利用 React 的双向数据绑定,每次输入都会通过 props 传递给 User 组件)
  • 点击按钮并将 user.iduser.name 更新为 { id: 1, name: 'Bob' }

我们通过 connect 来获取 store 中的值并将它们传递到 组件的 props 中。

最后,我们传递了 updateUser 函数到组件的 props 中,使得 React 组件能够使用它来更新 user 对象值。

总结

在本文中,我们介绍了如何使用 redux-values 来管理应用程序状态中的对象值。我们创建了一个定义对象,处理器和动作(actions),并演示了如何更新和访问这些对象值。

redux-values 提供了一种可靠的方式,将包含对象值的应用程序状态集成到 Redux store 中。借助 redux-values,提供功能强大且易于维护的状态管理系统,增加了应用程序的可扩展性,同时减少了后续的维护成本。

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


猜你喜欢

  • npm 包 sqlcmd-sqlite3 使用教程

    前言 sqlcmd-sqlite3 是一个 npm 包,它提供了一种使用 SQL 命令行管理 SQLite 3 数据库的方式。如果你是一名前端开发人员,常常需要与 SQLite 3 数据库打交道,那么...

    4 年前
  • npm 包 sqlcmd-sql 使用教程

    在前端开发中,我们常常需要与数据库进行交互。而 sqlcmd-sql 是一个方便快捷的 npm 包,可以帮助我们在 Node.js 环境下进行 SQL 的执行和调用操作。

    4 年前
  • npm 包 sqlcut-pg 使用教程

    前言 在开发 Web 应用程序时,数据管理是非常重要的一部分。而 SQL 语言是关系型数据库的标准语言,已经成为许多 Web 应用程序的首选。在 Node.js 中,我们可以使用 sqlcut-pg ...

    4 年前
  • npm 包 sqlectron-term 使用教程

    在我们开发前端项目时,可能需要与数据库进行交互和查询操作,通常需要使用可视化的数据库管理工具。而 sqlectron-term 正是一款基于命令行界面的数据库管理工具,可以帮助我们更高效地进行数据库管...

    4 年前
  • npm 包 sqldash 使用教程

    前言 在前端开发过程中,需要使用一些数据库来存储数据,此时需要用到 SQL 语句来操作数据库。但是,写 SQL 语句较为繁琐,且容易出错。因此,本文介绍了一个功能强大的 npm 包 sqldash,简...

    4 年前
  • npm 包 sqldog 使用教程

    sqldog 是一个基于 Node.js 并使用 sqlite3 数据库的小型 ORM 库,提供了方便的 SQL 查询操作和数据库管理功能。本文将介绍 sqldog 的使用方法和注意事项,并附带实用示...

    4 年前
  • npm 包 sqlcut-mysql 的使用教程

    在前端开发中,SQL 查询是必不可少的一部分。对于 MySQL 数据库的使用,我们可以通过 npm 包 sqlcut-mysql 来简化我们对 SQL 查询的操作。

    4 年前
  • npm 包 spready 使用教程

    什么是 spready? Spready 是一个 JavaScript 库,用于将 JavaScript 对象展开成类似数组的形式。它和 ES2015 中的扩展运算符(spread operator)...

    4 年前
  • npm包sqlfile-loader使用教程

    随着前端项目的复杂化和模块化,我们经常需要使用到各种前端依赖库和工具,尤其是在涉及到数据存储和管理的时候。对于一些需要频繁读取 SQL 文件的项目,sqlfile-loader 是一个非常实用的工具,...

    4 年前
  • npm 包 spree-ember-checkouts 使用教程

    在前端开发中,使用npm包可以方便我们实现各种功能,提高代码的复用性和效率。本文将介绍一个名为spree-ember-checkouts的npm包,它是用于实现电商网站订单结算功能的一个前端框架。

    4 年前
  • npm 包 squeezebox 使用教程

    在前端开发中,经常需要对网站中的图片和视频进行响应式处理和缩放。这时候,我们可以使用 squeezebox 这个 npm 包来实现图片和视频的展示优化。 什么是 squeezebox squeezeb...

    4 年前
  • npm 包 spree-ember-storefront 使用教程

    前言 在前端开发中,我们经常会使用一些 npm 包来快速实现功能或加速开发进度。本文将介绍一个前端开发中常用的 npm 包 —— spree-ember-storefront,它是一个基于 Ember...

    4 年前
  • npm 包 Spree-Ember-Auth 使用教程

    Spree-Ember-Auth 是一款基于 Ember.js 的前端验证库,它可以轻易地与 Spree 集成,提供用户验证试。本文将介绍 Spree-Ember-Auth 的使用教程,并提供示例代码...

    4 年前
  • npm 包 squeezenode 使用教程

    简介 squeezenode 是一个 Node.js 的 npm 包,旨在提供与 Squeezebox 家庭音乐系统的通信接口。通过借助 squeezenode,在 Node.js 应用程序中可以实现...

    4 年前
  • npm 包 squeezer-event-node 使用教程

    在前端开发中,事件驱动编程是非常常见的一种编程思想。为了更好地实现事件驱动编程的思想,一个名为 squeezer-event-node 的 npm 包应运而生。这个 npm 包可以在 Node.js ...

    4 年前
  • npm 包 sseries-of-tubes 使用教程

    sseries-of-tubes 是一个优秀的 npm 包,它可以帮助前端开发者更加方便地处理对象和数组的操作。本文将以使用教程的形式,详细介绍如何使用该 npm 包。

    4 年前
  • npm 包 ssg-core 使用教程

    在前端开发中,我们经常需要使用静态网站生成器(static site generator,简称 SSG)来生成静态网站,这可以极大地提高网站的性能和安全性。而 ssg-core 就是一个强大的 SSG...

    4 年前
  • npm 包 squel-having-block 使用教程

    前言 在前端开发中,我们常常需要使用到各种库和工具来快速地完成开发任务,而 npm 作为世界上最大的软件注册表之一,也已成为了前端开发者不可或缺的工具之一。 在本篇文章中,我们将详细介绍一个 npm ...

    4 年前
  • npm包sseu-neun-mal使用教程

    简介 sseu-neun-mal是一款非常实用的npm包,它可以用来生成好看的韩文字体,可以应用于前端页面设计等领域中。本教程将为大家介绍如何使用该npm包,涵盖安装、调用以及可能的问题解决方案等方面...

    4 年前
  • npm 包 ssg-grunt 使用教程

    什么是 ssg-grunt? ssg-grunt 是一个面向静态网站生成器(SSG)的 npm 包,提供了一种简单、易用和高效的方式来构建和管理静态网站。 ssg-grunt 基于 Grunt 构建,...

    4 年前

相关推荐

    暂无文章