npm 包 simple-form-js-component 使用教程

阅读时长 8 分钟读完

简介:simple-form-js-component 是一个基于 React 的简单表单组件,使用起来非常方便。该组件包含了常用的表单元素,并且支持动态生成表单项。

安装

要使用 simple-form-js-component,你需要先在你的项目中安装它。可以使用 npm 或 yarn 来安装:

安装完成后,在需要使用该组件的文件中引入它:

如何使用

使用 simple-form-js-component 构建表单非常简单。下面是一个基础的例子:

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

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

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

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

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

在上面的例子中,我们创建了一个包含两个表单项的表单,分别是用户名和密码,使用了 SimpleForm 组件,并在表单提交时输出了当前表单数据。

SimpleForm 组件接受两个必要 props:

  • formFields,指定要渲染的表单项;
  • onSubmit,表单提交时的回调函数,接受表单数据作为参数。

下面我们来详细介绍 formFields 支持的各种类型表单项和相关 props。

表单项类型

Input

Input 类型可以渲染多种 HTML input 控件,包括:

  • text
  • password
  • email
  • number
  • url
  • date
  • time
  • month
  • week
  • datetime-local
  • search

下面是 Input 类型表单项的 props:

  • type(必须):input 控件的类型,可选值有上述类型;
  • name(必须):input 控件的名字,用于在表单数据中标识该控件;
  • label(可选):input 控件的标题;
  • placeholder(可选):input 控件的占位符文本。

Checkbox

Checkbox 类型可以渲染一个 checkbox 控件。

对应 props:

  • type:固定为 checkbox
  • namelabelvalue:同 HTML checkbox 控件的对应属性。

Radio

Radio 类型可以渲染多个 radio 控件。

对应 props:

  • type:固定为 radio
  • namelabeloptions:同 HTML radio 控件的对应属性;
  • inline(可选):是否将选项横向排列,默认为 false
-- -------------------- ---- -------
----- ---------- - -
  -
    ----- --------
    ----- ---------
    ------ -----
    -------- -
      - ------ ------- ------ --- --
      - ------ --------- ------ --- --
    --
    ------- -----
  --
--

Select

Select 类型可以渲染下拉选择框。

对应 props:

  • type:固定为 select
  • namelabeloptions:同 HTML select 控件的对应属性;
  • multiple(可选):是否支持多选,默认为 false
-- -------------------- ---- -------
----- ---------- - -
  -
    ----- ---------
    ----- -----------
    ------ -------
    -------- -
      - ------ ------------- ------ ------------ --
      - ------ --------- ------ -------- --
      - ------ ------- ------ ------ --
    --
    --------- -----
  --
--

Textarea

Textarea 类型可以渲染一个多行输入框。

对应 props:

  • type:固定为 textarea
  • namelabel:同 HTML textarea 控件的对应属性;
  • rowscols(可选),分别为行数和列数。

Datepicker

Datepicker 类型可以渲染一个日期选择器。

对应 props:

  • type:固定为 datepicker
  • namelabelformat:分别为控件名、标题和日期格式;
  • defaultValue(可选),控件的默认值;
  • disabled(可选),是否禁用控件。
-- -------------------- ---- -------
----- ---------- - -
  -
    ----- -------------
    ----- -----------
    ------ -------
    ------- -------------
    ------------- -------------
    --------- -----
  --
--

Upload

Upload 类型可以渲染一个上传控件。

对应 props:

  • type:固定为 upload
  • namelabel:同 HTML file 控件的对应属性;
  • action(可选),上传接口地址;
  • accept(可选),支持上传的文件类型;
  • headers(可选),自定义 headers;
  • data(可选),自定义上传数据;
  • onChange(可选),上传成功后的回调函数。
-- -------------------- ---- -------
----- ---------- - -
  -
    ----- ---------
    ----- ---------
    ------ -----
    ------- ----------
    ------- -----------------------
    -------- -
      -------------- ------- -----
    --
    ----- -
      ------- --------
    --
    --------- ---------- -- -
      ------------------- ----------
    --
  --
--

动态表单项

如果你需要动态生成表单项,可以通过在 formFields 数组中添加一个函数,来实现动态表单项的生成:

在表单提交时,simple-form-js-component 将自动过滤掉所有函数类型的表单项,不将其计入表单数据中。

总结

通过本文介绍,我们了解到了如何使用 npm 包 simple-form-js-component 来构建前端表单,以及该组件支持的各种表单项。在实际开发中,使用该组件能够极大地提高表单开发效率。如果你在表单开发中遇到了问题,欢迎在评论区留言,我们将竭力为您解答。

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

纠错
反馈