npm 包 preact-smitty 使用教程

介绍

Preact-Smitty 是一个小型的状态管理库,使用了 preact hooks。它提供了一种简单的方式来管理您的组件的状态。Smitty 提供了与 Redux 的 Actions 类似的简化版本,适用于更小、更简单的项目。

安装

在您的项目目录下,运行以下命令来安装 preact-smitty:

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

快速上手

使用 preact-smitty 非常地简单,只需完成三个步骤:

  1. 从 Smitty 模块中导入 useStore。
  2. 在您的组件中使用 useStore 来获取 store 对象和 updateStore 对象。
  3. 在组件中使用 store 和 updateStore。

以下是一个示例:

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

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

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

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

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

在上面的代码中,我们从 preact-smitty 包中导入了 useStore 函数,通过它来获取 store 和 updateStore。store 是一个对象,它保存了我们组件中具有状态的属性。updateStore 函数是用来更新存储值的。

在我们的组件中,我们将 store 中的 count 属性作为组件的状态,然后通过使用 updateStore 函数来反映这个状态的变化。

您会发现上述例子中并没有提到 dispatch 和 action,这是因为 preact-smitty 用简单易懂的方式替代了它们。

API 文档

useStore(initialState)

useStore 是 preact-smitty 的核心函数,用于执行订阅状态更新并返回存储值和更新器。

参数:

  • initialState:任何可以成为您的 store 的初始值的东西,可以是 Undefined,null,Number,String,Boolean,Array,Object 或函数。

返回值:

  • [store, updateStore]:返回 store 和 updateStore,后者用于更新状态。

updateStore(updateFunction)

updateStore 函数通过 updateFunction 函数来更新存储值。

参数:

  • updateFunction(state, props):该函数将被调用,以函数的方式接收 store 和 props 作为参数。该函数必须返回一个新的状态对象或者可以产生新状态对象的函数。

综合示例

以下是一个更完整和复杂一点的示例,用于演示 preact-smitty 如何管理更复杂的状态和逻辑。

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

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

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

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

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

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

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

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

在上述代码中,我们定义了一个 TodoList 组件来展示一个类似于 TodoMVC 的应用程序。我们的存储包括一个 todos 数组、一个 newTodo 字符串和一个 filter 字符串。我们使用 updateStore 函数来更新存储值。

在我们的组件中,我们展示了存储的所有数据,并提供了添加一个新 Todo,删除一个 Todo,标记一个 Todo 完成的功能。我们还实现了一个过滤器,允许用户根据 Todo 的名称对 Todo 列表进行过滤。

在上面的示例中,我们展示了使用 preact-smitty 来管理更为复杂的应用程序状态的强大方法,并演示了如何使用不同的存储键和不同的更新函数,以更新我们的存储中的值。

总结

preact-smitty 是一个非常有用的小型状态管理库,它使用了 preact hooks,是您在处理更小、更简单的项目时所需要的。 使用 preact-smitty 与 Redux 不同之处在于我们更简单地更新状态,没有必要使用 dispatch 和 action。当您想要对 preact 的开发进行状态管理时,preact-smitty 是一个绝佳的选择。该库是根据 preact 状态管理的最佳实践开发的,具有非常方便的使用和配置方式。 通过这篇文章,您应该已经具备了足够的知识来在自己的 Preact 项目中使用 preact-smitty,并能够编写出更复杂的应用程序状态管理代码。

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


猜你喜欢

  • npm 包 anyproxy-rule-mirror 使用教程

    npm 是 Node.js 社区的包管理工具。使用 npm,你可以方便地下载和发布包以及管理依赖关系。 anyproxy-rule-mirror 是一个 npm 包,它是 AnyProxy 的一个规则...

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

    什么是 meepo-forms? meepo-forms 是一款基于 Angular 的 UI 组件库,专注于表单的设计和渲染。借助 meepo-forms,开发者可以快速构建互动性,美观又简洁的前端...

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

    引言 在前端开发中,我们经常需要使用一些 UI 组件来丰富页面外观和交互效果,而有时候我们又需要开发适配移动端的页面,这时候就需要用到 sc-component-mobile 这个 npm 包。

    3 年前
  • npm 包 cordova-plugin-opensettings 使用教程

    前言 在前端开发中,我们经常需要与设备的操作系统进行交互,例如修改设备的网络连接状态、调整屏幕亮度、修改通知权限等。但由于不同设备的操作系统和版本各异,因此开发人员需要借助第三方插件来实现这些功能。

    3 年前
  • npm 包 cupsdm 使用教程

    简介 cupsdm 是一个可以帮助开发者构建出符合 CUPS 标准的文件打印驱动的 npm 包。CUPS(Common UNIX Printing System)是一个在 Unix 系统中运行的开源打...

    3 年前
  • npm 包 cupsdm-builder 使用教程

    在前端开发过程中,经常会使用到一些 npm 包来提高开发效率。而 cupsdm-builder 是一个非常实用的 npm 包,它可以将多个 css 和 js 文件合并成一个文件,大大提高了页面加载速度...

    3 年前
  • NPM 包 envkonf 使用教程

    在前端开发过程中,我们经常需要区分不同的环境,例如:开发环境、测试环境、生产环境,不同的环境配置可能不一样。而 envkonf 就是一个可以帮我们管理环境配置的 NPM 包。

    3 年前
  • npm 包 express-urlrewrite2 的使用教程

    在前端开发中,常常需要构建 web 应用程序。而在构建过程中,我们常常需要使用到路由功能。这时候,就需要使用到一款强大的路由库——express。但是,使用 express 时,有时候我们还需要使用到...

    3 年前
  • npm 包 generator-oac 使用教程

    前言 在前端开发中,我们常常需要编写重复性的代码。使用生成器可以帮助我们快速地创建项目,减轻我们的工作负担。Generator-oac 就是一个用于创建前端项目的生成器,下面是使用教程。

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

    impack-cli 是一款基于 webpack 的打包工具,它为前端开发者提供了一种轻松方便的方式来打包和管理项目。在这篇文章中,我们将介绍 impack-cli 的安装、配置和使用,并提供一些常见...

    3 年前
  • npm 包 graphql-gate 使用教程

    GraphQL 是一种由 Facebook 提出的数据查询语言,它比传统的 RESTful API 更加灵活、查询更高效。作为前端开发人员,我们可以使用各种客户端库与 GraphQL 进行交互。

    3 年前
  • npm 包 libreconv 使用教程

    介绍 libreconv 是一个基于 LibreOffice 的 npm 包,用于将多种文件格式转换为 PDF 格式。它可被用于在前端和后端都进行在线和离线转换。 在这篇文章中,我们将会学习如何使用 ...

    3 年前
  • npm 包 ncups 使用教程

    介绍 ncups 是一个基于 Node.js 的命令行工具,用于打印文件和目录,支持一些打印选项。它是通过 Node Package Manager(npm)发行的,因此用户可以方便地通过 npm 安...

    3 年前
  • npm 包 loopback-utils 使用教程

    在前端开发领域中,npm 是一个非常重要的工具。npm 这个包管理工具能够让我们在项目开发中方便地获取到各种各样的第三方模块,其中包括一些常用的工具库。 loopback-utils 是一个常用的 n...

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

    npm 是一个非常流行的 JavaScript 包管理器。它允许开发者安装和管理依赖于 JavaScript 的第三方包。这些包可以用于构建 web 应用程序、工具和框架等。

    3 年前
  • npm 包 passport-lims 使用教程

    导言 随着前端技术的不断发展,越来越多的网站或应用程序需要用户登录和验证功能。本文将介绍 npm 包 passport-lims,它是一款适用于 Node.js 环境下的身份验证库,采用策略的方式实现...

    3 年前
  • npm 包 json5-relaxed 使用教程

    在前端开发中,我们经常需要操作 JSON 类型的数据。而在有些情况下,我们希望可以使用更加灵活和方便的 JSON 格式 —— JSON5。JSON5 是 JSON 的超集,它支持注释和一些其他特性。

    3 年前
  • npm 包 no-framework 使用教程

    在前端开发中,使用框架可以让代码更方便、快速的实现功能,但随着应用的复杂性增加,框架的维护成本也随之增加。为了在保证代码质量的前提下减少维护成本,一些前端开发者开始采用 no-framework 方式...

    3 年前
  • npm 包 dayone2-to-evernote 使用教程

    介绍 npm 包 dayone2-to-evernote 是一个用于将 Day One 日记转换为 Evernote 笔记的命令行工具。该工具可用于大规模的批量转换,它可以将 Day One 内容转换...

    3 年前
  • npm包phantom-component使用教程

    前言 对于前端开发人员来说,npm包是一个宝贵的资源,可以提高代码开发效率。今天,我将介绍一款优秀的npm包-phantom-component,它是一个基于JavaScript的组件库,帮助开发人员...

    3 年前

相关推荐

    暂无文章