npm 包 enhancer-db-bridge 使用教程

enhancer-db-bridge 是一个基于 reduxredux-saga 的中间件用于实现前端与数据库之间的交互。它将前端的请求转换为数据库操作,并在操作结束后更新 Redux 中的状态。

在本文中,我们将介绍如何使用 enhancer-db-bridge 来优化前端应用程序的性能。

安装

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

教程

初始化

首先,我们需要在创建 store 时将 enhancer-db-bridge 中间件添加到 Redux 中。这可以通过 createStore 函数的第二个参数实现:

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

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

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

其中,{ /* DB configuration */ } 是配置对象,用于指定数据库连接信息、查询语句等。在下一节中,我们将更详细地讨论如何配置它。

配置

enhancer-db-bridge 提供了一些配置选项,可以在传递给中间件的对象中进行设置,如下:

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

其中:

  • database: 数据库名称
  • dataSource: 数据源,支持 WebSQL、IndexedDB、MongoDB 等
  • queries: 查询语句配置,格式如下:
-
  ---------- -
    -- ----
    ---------- ------- - ---- ----- ----- ----- - ---
    -- ------------- -------------- ---
    ------- ----------
    -- -------- ------- ----- ----- --
    -------- ------- ------- -- --
      ---------
      ------ -------------------
    ---
  --
-

在查询语句中使用 ? 作为占位符,中间件会将 action.payload 中的值按顺序填入其中。

触发查询

触发查询可以通过 Redux 的 dispatch 函数实现,例如:

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

其中:

  • type: 必须为字符串 'QUERY',表示这是一个查询操作
  • query: 查询名,需要在配置对象 queries 中有定义
  • payload: 查询参数

示例

下面是一个使用 enhancer-db-bridge 的完整示例,它从 MongoDB 中查询用户列表并将其保存到 Redux 状态中:

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

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

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

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

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

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

在这个示例中,我们首先定义了一个 Redux store,并将 enhancerDbBridge 中间件添加到其中。在中间件配置中,我们指定了数据库连接信息和一个名为 getAllUsers 的查询语句。getAllUsers 语句从 users 表中查询所有用户名中包含指定关键字的用户,并将结果保存在 Redux 状态中的 users 字段中。

在页面初始化时,我们就触发了一次 getAllUsers 查询,以显示用户列表。在搜索框中输入关键字后,通过触发新的 getAllUsers 查询来刷新列表。注意,我们使用的是 dispatch 函数,而非直接调用 enhancer-db-bridge 的 API。这是因为 enhancer-db-bridge 已经封装了查询的具体实现,我们只需要通过 dispatch 来触发即可。

学习与指导意义

enhancer-db-bridge 可以简化前端与数据库交互的实现,让前端开发人员可以更专注于业务逻辑的实现。由于中间件本身并没有直接执行查询操作,只是将查询转换为 Web API 调用后在 Redux 状态中更新,因此可以避免前端应用程序直接向数据库发送请求,减少了对数据库连接池等资源的负载。同时,由于 Redux 的状态是不可变的,可以更好地支持代码的可测试性与可维护性。

除了 enhancer-db-bridge,还有许多类似的中间件可以用于前端与数据库之间的交互。学习并掌握这些工具可以提升前端应用程序的性能、可测试性和可维护性,这也是现代前端开发人员需要的一项核心技能。

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


猜你喜欢

  • npm 包 kefir-combine-object 使用教程

    Kefir-combine-object 是一个方便的 JavaScript 库,用于合并多个 kefir 流的对象。 在前端开发中,我们经常需要将多个流的值结合在一起,并将它们转换为一个对象。

    4 年前
  • npm 包 kefir-contrib-crud 使用教程

    前言 Kefir-contrib-crud 是一个基于 Kefir 的前端数据处理库,提供了常见的 CRUD 操作(增删改查)功能。如果您正在寻找一个易于使用的轻量级数据处理库,那么 kefir-co...

    4 年前
  • npm 包 keycloak_user 使用教程

    什么是 keycloak_user keycloak_user 是一个用于 keycloak 用户读写操作的 npm 包。keycloak 是一个世界领先的开源身份和访问管理解决方案,可以用于管理用户...

    4 年前
  • Npm 包 ketch 使用教程

    在前端开发中,经常需要请求 API 并处理返回数据,其中 ketch 是一个好用的工具,可以帮助我们快速地处理 HTTP 请求。本文将介绍 npm 包 ketch 的使用教程,包括安装、基本用法、进阶...

    4 年前
  • npm 包 ketchup-timer 使用教程

    前言 在前端开发中,我们经常需要使用定时器来实现一些特定的功能。现在,有一个名为 ketchup-timer 的 npm 包提供了一种更加优秀的定时器方案。本篇文章将详细介绍如何使用 ketchup-...

    4 年前
  • npm 包 kettle-ui 使用教程

    前言 在前端开发中,我们常常需要使用各种 UI 库来快速构建我们的页面。今天,我将介绍一个非常优秀的 npm 包,它就是 kettle-ui。 kettle-ui 是一款基于 Vue.js 开发的 U...

    4 年前
  • npm 包 keue 使用教程

    什么是 keue? keue 是一个基于 JavaScript 实现的轻量级队列库,可以用于实现任务队列等功能。 安装 keue 在使用 keue 之前,需要先安装它。

    4 年前
  • npm 包 kathinka 使用教程

    在前端开发中,我们经常需要用到大量的样式文件和 JavaScript 库。npm 是一个流行的包管理工具,它允许我们在项目中安装和使用这些库。在本篇文章中,我们将介绍一个名为 kathinka 的 n...

    4 年前
  • npm 包 katjs 使用教程

    前言 随着前端技术的不断发展,现在的前端工程师越来越注重代码的复用性和可维护性。而 npm 包就是一个很好的解决方案,开发者可以很方便地编写、发布和使用自己的包。 本文将介绍一个轻量级的 npm 包,...

    4 年前
  • npm 包 @curvetech/slate-react 使用教程

    在前端开发中,富文本编辑器是一个常见需求,而 Slate.js 是一个优秀的富文本编辑器框架,它提供了快速构建自定义富文本编辑器的方式。@curvetech/slate-react 是 Slate.j...

    4 年前
  • npm 包 @dbmdz/mirador-manifestbutton 使用教程

    简介 @dbmdz/mirador-manifestbutton 是一个与 Mirador 兼容的 npm 包,它允许您在 Mirador 框架中添加“Manifest 按钮”,该按钮允许用户一键加载...

    4 年前
  • npm 包 kefir-contrib-fantasy 使用教程

    Kefir-contrib-fantasy 是一个 JavaScript 函数式编程库,它是基于 Kefir 和 Fantasy Land 规范开发的。在前端开发中,我们经常需要处理异步操作、事件流等...

    4 年前
  • npm 包 kefir-contrib-retry 使用教程

    什么是 kefir-contrib-retry? kefir-contrib-retry 是一个用于 Kefir.js 的 npm 包,它提供了一个 Kefir 流的操作符,可以用于在流出现错误时自动...

    4 年前
  • npm 包 kefir-contrib-stomp 使用教程

    简介 kefir-contrib-stomp 是一个基于 stompjs 和 kefir 的 npm 包,用于连接、订阅和发布 STOMP(Simple Text Oriented Messaging...

    4 年前
  • npm 包 katex-support 使用教程

    在前端开发中,数学表达式是一个常见的需求,而 Katex 是一个强大的渲染数学公式的库。在使用 Katex 的过程中,我们可以通过 npm 包 katex-support 来方便地实现用 Latex ...

    4 年前
  • npm 包 keycodes 使用教程

    在前端开发中,我们经常需要对用户输入的键盘事件做出处理,比如按下某个键盘按键后触发相应的操作。但是,由于不同的浏览器对键盘事件的编码不一样,因此在编写代码时,我们需要了解不同浏览器的键值编码。

    4 年前
  • npm包 keycodes-cli 使用教程

    前言 在前端开发中,我们需要经常使用键盘上的相应键位来完成功能,例如删除文本、切换tab等等。但是,在编写代码的时候,我们需要了解不同键位的ASCII码或者keycode的值。

    4 年前
  • npm 包 @hyacinth-xu/tiny 使用教程

    什么是 @hyacinth-xu/tiny? @hyacinth-xu/tiny 是一个将字符串去除空格的 npm 包。 安装 使用 npm 安装 @hyacinth-xu/tiny: --- ---...

    4 年前
  • NPM包Kefir-Contrib-Run使用教程

    Kefir-Contrib-Run是一个能够运行Kefir stream的库,同时提供了一些有用的功能和语法糖,这篇文章将会深入地介绍它的使用方法,以及如何将它应用在你的前端开发中。

    4 年前
  • npm 包 kefir-contrib-writer 使用教程

    简介 kefir-contrib-writer 是一个基于 Kefir 函数式响应式编程框架的 npm 包。它实现了 Kefir.Stream 和 Kefir.Property 的扩展方法,旨在帮助开...

    4 年前

相关推荐

    暂无文章