npm 包 react-material-querybuilder 使用教程

阅读时长 9 分钟读完

简介

React-Material-QueryBuilder 是一个 React 组件库,提供了一种用于构建搜索/筛选功能的交互式 UI。它可以构建一个可扩展的表单,用于构建复杂的查询表达式。本篇文章将介绍该 npm 包的使用教程。

安装与引入

在项目中使用 React-Material-QueryBuilder,我们需要先安装它。可以使用 npm 或者 yarn 来安装:

然后在需要使用的地方引入:

如何使用

React-Material-QueryBuilder 组件库提供了一个基于 Material UI 的 QueryBuilder 组件,可以轻松地在项目中使用。以下是使用教程。

基本用法

最简单的使用方式,只需要提供一个 fields 属性,表示用于查询的字段信息。其中每一项字段信息包含以下属性:

  • name:字段名称,类型为字符串。
  • label:字段展示名称,类型为字符串。
  • inputType:字段的输入类型,例如 textnumberdate 等等。
  • operators:该字段支持的操作符。
-- -------------------- ---- -------
----- ------ - --
  ----- ------------
  ------ ------ ------
  ---------- -------
  ---------- --------- ------------
-- -
  ----- -----------
  ------ ----- ------
  ---------- -------
  ---------- --------- ------------
---

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

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

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

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

上述代码中,我们首先定义了查询用到的字段信息,然后在组件中使用时,将 fields 属性设置为该信息数组,并设置一个 onChange 属性监听组件变化。

高级用法

在实际项目中,我们的查询条件可能需要更加复杂,需要添加自定义的操作符、设置默认值、设置样式等等。下面我们将逐一介绍这些高级用法。

自定义操作符

在默认情况下,React-Material-QueryBuilder 只提供了一些基础的操作符,例如 equalnot_equalinnot_in 等等。如果项目需要自定义操作符,可以通过以下方式实现:

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

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

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

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

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

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

上述代码中,我们在 fields 数组中添加了一个自定义操作符,名为 custom_operator,并设置了操作符需要的输入类型和基数等信息。同时,我们在组件中使用时,传入了一个 customRules 属性,该属性用于自定义操作符的验证规则。

在上述代码中,我们使用 this.customOperatorValidator 方法来验证自定义操作符 custom_operator。该方法接收四个参数:

  • currentQuery:当前查询对象。
  • operator:当前操作符。
  • index:在查询对象中的索引。
  • field:当前字段。

方法返回一个 bool 值,用于验证该操作符的值是否正确。

设置默认值

在某些情况下,我们需要设置某些字段的默认查询条件。例如,查询的开始时间和结束时间可以设置默认值,这样用户就可以直接使用默认时间进行查询。React-Material-QueryBuilder 组件提供了 defaultRules 属性,可以用于设置默认值。

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

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

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

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

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

上述代码中,我们在 defaultRules 属性中设置了 firstNamecreatedAt 字段的默认值。

设置样式

最后,我们可以为 React-Material-QueryBuilder 组件添加样式,并自定义其外观。与其他 React 组件类似,我们需要为其添加 classNamestyle 属性来实现样式的自定义。

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

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

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

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

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

上述代码中,我们在 div 标签中添加了 my-material-querybuilder 的自定义类名,然后使用该类名重写 React-Material-QueryBuilder 的样式。

总结

到这里,我们对 React-Material-QueryBuilder 的使用教程就介绍完了。只是其中的一些基础用法,该 npm 包还提供了其他一些高级用法,可以根据自己的需求查看文档。希望本篇文章能够对大家有帮助,谢谢阅读!

示例代码

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

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

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

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

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

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

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562e681e8991b448e0875

纠错
反馈