npm 包 carryon 使用教程

在前端开发中,我们通常需要管理全局状态,并能够在多个组件之间共享和变更状态。而在 React 生态中,carryon 就是一个非常好用和易于学习的状态管理工具。

简介

carryon 是一个 win-streak 贡献的开源 npm 包,提供了针对 React 应用的状态管理解决方案。它包含优雅而简单的状态管理 API,可以极大地提高我们的开发效率、代码的可读性和可维护性。

carryon 的最初目标是为 React 应用提供轻便的状态管理,它的定位非常明确:提供极简的 API 和最小化的内部状态管理。与 Redux 这样的工具相比,carryon 比较轻量,也更适合小型应用。但它同样可以通过扩展 API 和插件提供不错的中小型应用支持。利用 carryon,我们可以轻松地管理复杂的数据流和状态变更,同时还有优秀的 TypeScript 支持。

安装

使用 npm 安装 carryon:

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

开始使用

首先,把 carryon 引入我们的 React 应用:

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

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

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

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

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

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

以上代码实现了一个简单的计数器,我们创建了一个 store 对象并传给了 createContainer 函数,然后在 Counter 组件中使用 store 对象来展示和修改 count 的值。

可以看到,carryon 中最核心的概念就是 store 文件,它是一个状态数据容器,并用于存储应用内的全局状态和组件之间共享的状态。

当你需要在某个组件中读取和更新状态时,只需要通过 useContainer 查询 store 中的状态, 或者调用 setState 更新状态即可。在使用后,React 会自动管理组件更新。

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

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

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

在以上代码中,我们使用 useContainer 从 store 中查询刚刚定义的 count 变量的值,并使用 setCount 来修改它的值。

除此之外,carryon 还提供了一些额外的 API,如 dispatch,和 setContext 等,来帮助我们更好的管理全局状态和数据流。

API 详解

useContainer

用于从 store 中读取数据和设置数据更新回调。

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

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

参数:

  • key: string,对象状态的键名。

返回值:

  • data: any,对象状态的值。
  • setData: Function,用于修改 key 对应对象的状态,并且为下一次 React 更新注册。

setContainer

用于从 store 中直接修改整个对象。

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

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

参数:

  • key: string,对象状态的键名。
  • object: any,需要修改的键值对。

返回值:

dispatch

用于触发状态更改回调。

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

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

参数:

  • key: string,所触发的回调键名。
  • args: any[],回调函数的参数。

返回值:

setContext

用于设置组件上下文环境。

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

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

参数:

  • contextObj: object,需要设置的上下文环境变量。

返回值:

总结

carryon 是一个非常优秀的状态管理工具,使用非常简单,而且支持所有级别的开发者。希望这篇文章能够为你学习 carryon 提供帮助,同时也增进了解状态管理工具的能力。

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


猜你喜欢

  • npm 包 mat-table-expander 使用教程

    前言 mat-table-expander 是一个基于 Angular Material 和 Angular 的 npm 包,旨在为前端开发者提供一个方便易用的表格扩展组件。

    3 年前
  • 使用 npm 包 rms-meteor-error-reporter

    前言 npm 是 Node.js 的包管理器,拥有数以百万计的包供开发者使用。本篇文章介绍的 rms-meteor-error-reporter 包是一个可以在 Meteor 应用中自动收集客户端 J...

    3 年前
  • npm 包 rms-meteor-pure-render-decorator 使用教程

    在前端开发中,性能优化一直是非常重要的一环。在 React 开发中,重新渲染组件是非常消耗性能的,特别是当组件参数没有改变时却要重新渲染时。这时候,我们就需要使用 shouldComponentUpd...

    3 年前
  • npm 包 rc522-i2c 使用教程

    背景 & 概述 RC522 是一款非接触式 IC 卡 RF ID 读写器,具有非常广泛的应用场景。在本教程中,我们将介绍如何使用 npm 包 rc522-i2c,来与 RC522 进行交互,并...

    3 年前
  • npm包rms-meteor-ripple使用教程

    简介 rms-meteor-ripple是一个可以在网页上添加水波纹效果的npm包。它是基于CSS和JavaScript的轻量级库,可以帮助前端开发人员快速实现水波纹效果,提高网页的用户体验。

    3 年前
  • npm 包 rms-meteor-base-component 使用教程

    简介 npm 是一个包管理工具,其中包括了许多前端常用的包。其中 rms-meteor-base-component 是一个非常实用的 npm 包,它提供了一些基础的组件,让前端开发更加便捷。

    3 年前
  • npm 包 rms-meteor-choose 使用教程

    rms-meteor-choose 是一个方便的 npm 包,旨在帮助前端工程师在开发过程中,更加方便快捷地使用 Meteor 可靠的数据管理和自动发布功能。本文将介绍 npm 包的使用方法和注意事项...

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

    简介 react-native-twitter 是一个 React Native 组件,用于显示 Twitter 时间轴。该组件提供了一个易于使用的 API,它使您可以在您的 React Native...

    3 年前
  • npm 包 sanitize-html-x 使用教程

    作为前端开发人员,我们经常需要处理 HTML 内容,这可能会包含一些不安全的标签和属性,这些标签和属性可能会导致安全漏洞。sanitize-html-x 是一个能够帮助我们处理这些问题的 npm 包。

    3 年前
  • `npm` 包 `@sugarcoated/royal` 使用教程

    简介 @sugarcoated/royal 是一个 npm 包,其中集成了常用的前端工具和组件,方便开发者快速构建高质量的前端应用。 这个包包含了以下内容: axios:用于发出 Ajax 请求 l...

    3 年前
  • npm 包 can-places-autocomplete 使用教程

    介绍 can-places-autocomplete 是一个基于 Google Places API 的自动完成插件。可以用于在输入框中提供实时的地址自动完成建议。

    3 年前
  • npm 包 node-threejs-raub 使用教程

    前言 前端开发领域中,Three.js 是一个优秀的 JavaScript 3D 图形库。它提供了许多强大的功能,使得 3D 图形处理变得简单易用。然而,Three.js 的 API 相对比较复杂,因...

    3 年前
  • npm 包 caxios 使用教程

    什么是 caxios? caxios 是一个基于 axios 封装的库,用于简化前端发起请求的操作。它提供了许多便利的特性,例如: 处理请求异常情况:caxios 可以自动处理网络异常、请求错误、响...

    3 年前
  • npm 包 node-webgl-raub 使用教程

    介绍 node-webgl-raub 是一个开源的 npm 包,它提供了一种在 Node.js 环境下使用 WebGL 的方式。这种方式非常适合在服务器端渲染 3D 图形、数据可视化、游戏等场景下使用...

    3 年前
  • npm 包 statusline 使用教程

    statusline 是一个简单的 npm 包,用于在终端显示当前运行程序的状态信息。本文将带领大家深入了解 statusline 的使用方法,包括安装、引入、API 接口等,以及如何使用自定义插件自...

    3 年前
  • npm 包 @bnchdrff/scroll-to 使用教程

    在前端开发中,我们经常需要实现一些页面滚动的效果。而使用 JavaScript 来控制滚动时,往往需要编写大量的代码。接下来,我们将介绍一款名为 @bnchdrff/scroll-to 的 npm 包...

    3 年前
  • npm 包 mobile-message 使用教程

    在前端开发中,我们常常需要使用手机短信验证码来验证用户身份。而使用 npm 包 mobile-message 可以方便地实现这些功能。本文将详细介绍如何使用 mobile-message 进行手机短信...

    3 年前
  • npm 包 appmodel-protractor 使用教程

    什么是 appmodel-protractor? appmodel-protractor 是一款专门为前端开发构建的 npm 包,它可以在 Protractor 中提供 Appium 的操作,实现在 ...

    3 年前
  • npm 包 "first-romin-npm-package" 使用教程

    简介 npm 是 JavaScript 包管理器,用于 Node.js 环境中的软件包安装和分发,也可用于前端项目中的依赖管理。"first-romin-npm-package" 是一个简单的 npm...

    3 年前
  • npm 包 better-react-proxy-loader 使用教程

    前言 在日常前端开发中,我们会经常使用到webpack进行打包,而在webpack的loader中,通常我们使用的是react-hot-loader进行热更新。但是我们可能还需要对一些较为复杂的组件进...

    3 年前

相关推荐

    暂无文章