npm 包 @agargamosa/redux-hooks 使用教程

简介

redux 是一个流行的状态管理库,但它的 API 过于繁琐,使用也有一定的限制。@agargamosa/redux-hooks 是一个针对 redux 的 react hooks 封装库,让我们能够轻松使用 redux 的状态管理功能。在这篇文章中,我们将介绍如何在我们的 react 项目中使用 @agargamosa/redux-hooks。

安装

通过 npm 安装 @agargamosa/redux-hooks:

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

使用

Provider

为了使用 redux-hooks,我们需要将 redux store 注入到 react 组件中。和原生的 redux 一样,我们需要使用 Provider 组件包裹整个应用程序。在 Provider 中传入我们创建的 store 即可。例如:

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

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

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

在我们的应用程序的入口处,我们需要将Provider组件包裹在我们的App组件外面,将这个store传递给Provider:

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

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

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

使用 hooks

现在我们已经把 store 注入到了我们的项目中,我们可以使用 react 的 hooks 来使用 redux。首先,我们需要从 react-redux 中导入所需的 hook。现在我们可以使用 useMappedState 和 useDispatch 这两个 hook。

useMappedState

useMappedState 允许我们使用 store 的 state 中的一部分值。我们可以使用它来选择我们需要的特定的状态,而不必每次都使用全局状态。举个例子:

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

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

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

useDispatch

useDispatch 允许我们在使用 redux 时 dispatch actions。我们可以使用它将 action 函数作为参数并在需要时调用它。举个例子:

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

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

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

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

将多个 hook 组合在一起

现在我们已经了解了如何使用 useMappedState 和 useDispatch 来访问我们的 redux store,我们可以将它们结合起来使用:

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

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

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

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

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

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

这里我们通过 useMappedState 来获取了 state 中的两个数据项,然后使用 useDispatch 来 dispatch 两个 action。当 'Add Item' button 被点击时,我们会 dispatch 'ADD_ITEM' action,向数组中添加一个新的 item。当 'Clear Items' button 被点击时,我们会 dispatch 'CLEAR_ITEMS' action,清空数组中所有的 items。

完整示例代码

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

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

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

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

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

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

总结

在本文中,我们介绍了如何使用 @agargamosa/redux-hooks 来优雅地管理 redux 状态,而不再需要编写样板代码。我们看到了如何在 React 中使用这个库的基本结构,以及如何将多个 hooks 组合在一起以访问 store 和 dispatch actions。如果你在使用 redux 的过程中感到疲惫,请试试使用 @agargamosa/redux-hooks 来让你的工作更加轻松。

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


猜你喜欢

  • npm 包 @beisen/pb-svg 使用教程

    简介 在前端开发中,很多时候我们需要使用 SVG 图标来展示各种图形,例如企业标志、按钮、箭头等等。@beisen/pb-svg 就是一个 NPM 包,它提供了一种方便的方式来使用 SVG 图标。

    5 年前
  • npm 包 @beisen/beisen-scroll-bar 使用教程

    简介 @beisen/beisen-scroll-bar 是一个用于创建自定义滚动条的 npm 包。它允许你创建各种不同款式的滚动条,以适应你的 Web 应用程序中的各种需要。

    5 年前
  • npm 包 @beisen-cmps/italent-click-outside 使用教程

    在前端开发中,我们经常会遇到需要在页面中监听用户点击外部元素时触发的需求。而 npm 包 @beisen-cmps/italent-click-outside 就是一款可以监听 DOM 元素外部点击的...

    5 年前
  • npm 包 @types/warning 使用教程

    前言 在日常的前端开发中,我们经常会使用到各种 npm 包来实现我们需求的功能。但是当我们有些 npm 包需要使用时,我们需要先安装该 npm 包的类型声明,否则就会出现一些类型错误。

    5 年前
  • npm 包 @beisen-phoenix/file-preview 使用教程

    在前端开发中,文件预览是一个非常常见的需求。@beisen-phoenix/file-preview 是一个可以让你快速添加文件预览功能的 npm 包。在这篇文章中,我们将详细介绍如何使用这个 npm...

    5 年前
  • npm 包 @beisen-phoenix/demo-container 使用教程

    简介 @beisen-phoenix/demo-container 是一个前端 Demo 容器,可以将多个 Demo 集成到一个容器中,方便进行展示和分享。它支持多种布局方式,并且可以自定义皮肤和 L...

    5 年前
  • 前端技术分享:npm包ux-job-create-page使用教程

    什么是ux-job-create-page ux-job-create-page是一个前端开发工具,是为开发人员提供的一个快速创建工程目录的npm包。用户可以将其集成到自己的开发项目中,从而大大提高了...

    5 年前
  • npm 包 recruit-checked-form 使用教程

    简介 recruit-checked-form 是一款用于招聘网站中表单验证的 npm 包,旨在提供方便、可靠的表单验证功能。本文将详细介绍如何使用该包进行表单验证。

    5 年前
  • 前端开发必备:npm 包 recruit-check-form 使用教程

    如果您是一位前端开发者,那么您一定知道 npm。npm 是 Node.js 的包管理工具,许多前端开发者都使用它来管理他们的项目依赖。在这样一个拥有数百万个包的生态系统中,如何找到一个好的包并开始使用...

    5 年前
  • npm 包 @recruit-paas/flow-group 使用教程

    本文将介绍如何使用npm包@recruit-paas/flow-group来简化前端开发中的表格和表单处理。该包提供了一种易于使用的方式来处理表格和表单中的业务逻辑,同时还提供了一些高级功能,如数据校...

    5 年前
  • npm 包 @beisen/ocean-date-picker-composite 使用教程

    简介 @beisen/ocean-date-picker-composite 是一个基于 React 开发的日期选择器组件。该组件提供了多种日期选择的方式以及可自定义的配置项。

    5 年前
  • npm 包 italent-entities 使用教程

    ITalent-entities 是一款非常实用的 npm 包,可帮助前端开发人员更好地管理实体对象(例如数据表)。本文将详细介绍如何使用 italent-entities 包来提高前端开发效率。

    5 年前
  • npm 包 @beisen-phoenix/tabs 使用教程

    简介 在前端开发中,选项卡(Tabs)是一个常用的交互模式。@beisen-phoenix/tabs 是一款使用简便、易扩展的 Tabs 组件,支持懒加载,异步数据加载、功能扩展等多种开发需求。

    5 年前
  • npm 包 @beisen-phoenix/progress 使用教程

    简介 @beisen-phoenix/progress 是一款前端进度条组件,可以方便地帮助你实现页面上的加载进度展示。本文将详细介绍该组件的功能、使用方法以及相关注意事项。

    5 年前
  • npm 包 @beisen-phoenix/mobile-toast 使用教程

    前言 在移动端开发中,弹窗信息展示是必不可少的。然而,原生实现比较繁琐,而且缺少统一的样式,难以满足开发效率和美观性的要求。为了解决这一问题,我们可以使用 @beisen-phoenix/mobile...

    5 年前
  • npm 包 @beisen-phoenix/mobile-snackbars 使用教程

    前端开发中,一个好的UI提示组件是很重要的。其中移动端的snackbar提示框在一些场景下十分实用。如果你正在寻找一个好的snackbar组件,那么 @beisen-phoenix/mobile-sn...

    5 年前
  • npm 包 @beisen-phoenix/mobile-picker 使用教程

    前言 移动端选择器是我们在移动端项目中经常需要用到的基础组件。@beisen-phoenix/mobile-picker 是一个高度灵活的移动端选择器组件,支持自定义选择内容和样式,并且易于定制。

    5 年前
  • npm 包 @beisen-phoenix/mobile-modal 使用教程

    在前端开发中,modal 弹窗是一个经常用到的组件,但是我们每次需要弹窗的时候都手写一遍,既费时又费力。为了解决这个问题,很多前端工程师都将常用的 modal 封装成了 npm 包来提高开发效率。

    5 年前
  • npm 包 @beisen-phoenix/mobile-loading 使用教程

    在前端开发中,展示加载中状态是一个常见需求。但是手动实现加载中状态比较繁琐,需要写很多样式和逻辑代码。而 npm 包 @beisen-phoenix/mobile-loading 就为我们提供了一个快...

    5 年前
  • npm 包 @beisen-phoenix/mobile-icon 使用教程

    前言 在 web 开发过程中,我们经常使用字体图标来代替图片来减少页面资源加载时间。而近年来,移动端应用也开始大力使用字体图标来替代图片。因此,本文将为大家介绍一款移动端字体图标 npm 包 @bei...

    5 年前

相关推荐

    暂无文章