npm 包 @descco/form-builder 使用教程

阅读时长 6 分钟读完

简介

@descco/form-builder 是一个基于 React 的表单生成组件库。它提供了一系列现成的表单组件,可以通过简单的配置快速生成表单。该组件库支持自定义表单组件,可以根据自己的需求自定义组件。

安装

使用 npm 安装 @descco/form-builder:

使用

引入组件

首先在你的项目中引入组件:

渲染表单

使用 FormBuilder 组件渲染表单,需要传入一个描述表单结构的配置对象,如下:

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

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

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

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

在 formItems 中定义了两个表单项,分别用于输入姓名和选择性别。其中 name 字段代表该表单项的字段名,placeholder 和 options 字段根据不同类型的表单项定义不同。

initialValues 用于初始化表单的值,该对象的每个属性名对应一个表单项的字段名。

onSubmit 为表单提交事件的处理函数。

自定义组件

@descco/form-builder 支持自定义表单组件,只需在 formItems 中传入一个自定义组件的组件名即可。下面是一个自定义的日期选择器组件的示例:

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

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

高级特性

@descco/form-builder 提供了一些高级特性,比如条件渲染、动态表单项、自定义渲染器等。这里只介绍其中一些:

条件渲染

可以通过表单项的 condition 属性来定义条件渲染的规则。下面的示例会根据输入的性别来动态显示不同的表单项:

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

在这个示例中,当选中“男”时,爱好项才会显示。

动态表单项

可以通过表单项的 generator 属性定义动态表单项的生成规则。下面的示例会根据输入的工作地点生成不同的表单项:

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

在这个示例中,选中不同的工作地点,居住地的下拉框中显示的选项也会不同。

自定义渲染器

可以通过表单项的 renderer 属性定义自定义的渲染器。下面的示例会渲染一个自定义的表单项,在其中显示一个自定义的组件:

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

在这个示例中,渲染了一个名为“H5”的自定义表单项,其内部显示了一个名为 H5Component 的自定义组件。

总结

@descco/form-builder 是一个非常方便的表单生成组件库。它提供了丰富的表单组件和高级特性,可以快速地根据需求生成表单。 掌握了该组件库的使用方法和高级特性,可以提高开发效率,提供更好的用户体验。

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

纠错
反馈