NPM 包 redux-container-state-saga 使用教程

介绍

redux-container-state-saga 是一个便利的 redux 库,它利用了 redux 和 redux-saga 的概念简化了处理容器状态 (Container State) 的过程。容器状态是指与组件无关的全局状态。理解和管理它们可能会有一些繁琐的工作,这正是 redux-container-state-saga 的意义所在。

redux-container-state-saga 有以下几个特性:

  • 解耦组件和容器状态。
  • 建立信道,允许多个容器从同一个状态中读取信息,同时保持独立。
  • 通知所有容器状态的改变,使得它们可以自己更新。
  • 支持状态命中、状态虚拟继承。
  • 自带 hook,使用容易。

安装

可以通过 npm 进行安装:

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

使用

1. 配置 redux

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

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

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

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

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

2. 添加容器状态

在 store 的容器状态里添加一个名为 'myContainer' 的状态:

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

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

3. 添加容器状态的 reducer 和 saga

在根 reducer 中添加 'myContainer' 的 reducer:

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

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

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

建立 'myContainer' 的 saga:

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

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

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

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

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

将 'myContainerSaga' 添加到 root saga 中。

4. 在组件上使用容器状态

要使用容器状态,需要使用 'useContainerState' 这个 hook。使用 hook 前需要传入容器的键,以及连接的状态和操作:

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

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

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

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

上面的例子中,useContainerState 使用 'myContainer' 这个键来连接容器状态。第二个参数是一个对象,它指定了容器状态的初始值以及它如何映射到组件的状态字段。最后一个参数指定了操作容器状态的方法。

示例代码

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

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

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

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

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

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

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

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

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

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

总结

通过使用 redux-container-state-saga 库,我们可以更简单地管理容器状态。它提供了一个简单而有力的方式来解决组件复杂度的问题,可以使我们更加轻松地编写和维护代码。但值得注意的是,这并不是一个 silver bullet,您仍然需要理解 redux 和 redux-saga 的知识来使用它。希望这篇文章能够为你提供一些帮助。

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


猜你喜欢

  • npm 包 spot-framework 使用教程

    简介 spot-framework 是一款基于 React 和 Redux 的前端框架,它在构建单页应用程序方面具有很高的灵活性和可扩展性。spot-framework 采用模块化的方式设计组件,使得...

    4 年前
  • npm 包 spellcheck-tech-word-textlint-rule 使用教程

    前言 在前端开发中,我们经常需要处理文本处理的问题,例如拼写检查。而建立一个强大的文本处理工具集是非常有必要的,这样可以提高我们的工作效率。本篇文章将介绍一个 npm 包 spellcheck-tec...

    4 年前
  • npm 包 spz-app 使用教程

    在前端开发领域,npm 可以帮助我们轻松管理项目依赖,并快速引入常用的第三方库和组件。其中,spz-app 是一个非常实用的 npm 包,可以在开发中帮助我们快速生成常用的页面和组件,提高开发效率和代...

    4 年前
  • npm 包 spellchecker_ptbr 使用教程

    当我们写程序时,代码中可能会出现拼写错误。虽然 IDE 和编辑器通常会检查单词的拼写,但如果使用的是英语以外的语言,就需要使用一些特殊的工具来进行检查。本文将介绍一个叫做 spellchecker_p...

    4 年前
  • npm 包 spelled-number 使用教程

    随着前端开发的广泛应用,我们在开发过程中需要不断地去了解和使用不同的工具。其中,npm 包作为一种前端工具,为我们提供了方便易用的插件和模块。这篇文章将介绍一个 npm 包:spelled-numbe...

    4 年前
  • npm 包 Spyre 使用教程

    简介 Spyre 是一个基于 Node.js 的工具,用于帮助前端开发者监测和调试网络请求。它可以记录和拦截浏览器发送的 HTTP 请求,并在控制台中显示详细的请求信息和响应信息。

    4 年前
  • npm 包 spellcheck-api 使用教程

    介绍 Spellcheck-api 是一个 npm 包,用于检查拼写错误。这个包可以帮助开发人员在编写代码时及时发现拼写错误,并避免这些错误影响代码质量和可读性。本篇文章将会介绍如何使用 spellc...

    4 年前
  • npm 包 sq-box 使用教程

    sq-box 是一个用于在前端开发中管理网络请求、缓存和本地存储的 npm 包。本文将带您深入了解 sq-box,并详细介绍其使用方法和注意事项。 安装 sq-box 使用 npm 安装 sq-box...

    4 年前
  • npm 包 spyrr 使用教程

    什么是 spyrr Spyrr 是一个轻量级的前端数据响应式状态管理库。它可以帮助我们在前端应用中对状态进行统一管理和控制,使得我们的代码更加清晰、易于维护。 安装 你可以通过 npm 来安装 Spy...

    4 年前
  • spysass的使用教程

    在前端开发中,Sass是一个非常流行的CSS预处理器,它可以简化我们对CSS样式的编写,提高生产效率,增强代码的可维护性。而Spysass就是一个npm包,它可以提供一些在Sass中非常有用的颜色函数...

    4 年前
  • npm 包 spot-the-difference 使用教程

    spot-the-difference 是一个 npm 包,旨在为前端开发者提供一个简单但功能强大的比对工具,可以用于对比图形、文本等多种不同类型的内容,以便在进行前端 UI 设计时快速检测页面的差异...

    4 年前
  • npm包spotcheck使用教程

    介绍 在现代的前端开发中,使用多个JavaScript框架和库是非常常见的,不仅如此,大量的CSS和HTML也需要被管理。对于开发人员来说,为了确保他们的应用程序能够在各种浏览器和设备上正常运行,他们...

    4 年前
  • npm 包 spelljs 使用教程

    我们写代码的时候,对正确的英语拼写十分在意。因为错别字可能会让代码变得难以理解,增加别人阅读的难度。对于全球化的项目,诸如英文文档和注释是不可避免的。如果你也像我一样,不是特别自信相关单词的拼写,那么...

    4 年前
  • npm 包 spells 使用教程

    随着前端开发快速发展,越来越多的 npm 包被广泛应用于前端开发。其中,spells 是一款用于 JS 开发的 npm 包,其功能非常强大,可以帮助开发者更好地管理、优化和加速代码。

    4 年前
  • npm 包 spotcrime-city 使用教程

    在前端开发中,我们经常会用到各种第三方库和工具,其中,npm 包因为其方便性和功能性成为了我们开发过程中必不可少的一部分。其中,spotcrime-city 就是一个非常实用的 npm 包,它可以帮助...

    4 年前
  • 使用 npm 包 spelling-corrector 进行拼写校正

    在前端开发中,我们经常需要书写代码,但是我们难免会出现拼写错误,这些错误可能会导致程序出现问题。为了消除这些拼写错误,我们可以使用 npm 包 spelling-corrector 进行拼写校正,本文...

    4 年前
  • npm 包 split-css-selector 使用教程

    前言 在前端开发中,我们经常需要对 CSS 选择器进行拆分、操作和处理,但是在实际开发中,处理 CSS 选择器并不那么容易。为了提高开发效率,我们可以使用 npm 包 split-css-select...

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

    一、什么是 split-html-loader Split-html-loader 是一个 Webpack 加载器,能够将 HTML 文件分割成多个 HTML 文件,并使用 script 标签将它们嵌...

    4 年前
  • npm 包 split-flow 使用教程

    前端开发中,我们经常会遇到需要对一段文本进行分割处理,这时候 split-flow 提供了一种快捷、高效的解决方案。在本篇文章中,我们将探讨如何使用 npm 包 split-flow,从而轻松地完成文...

    4 年前
  • npm 包 spelunker 使用教程

    什么是 spelunker? Spelunker 是一个 Node.js 包,它可以帮助你快速地检查和查找出任何 Node.js 项目所使用的 npm 依赖。它可以让你避免手动地查找每一个 npm 依...

    4 年前

相关推荐

    暂无文章