npm 包 formsy-material-ui-customized 使用教程

阅读时长 6 分钟读完

在前端开发中,我们经常需要使用表单来搜集用户的信息,然而表单验证和处理一般是比较麻烦的事情。为了简化表单操作,社区中出现了一种非常流行的解决方案,那就是 Formsy。

Formsy 是一个 React 的表单验证和处理工具,它不仅提供了基本的表单验证功能,还支持异步验证,自定义验证规则,以及表单状态管理等一系列功能。但是在实际工作中,直接使用 Formsy 还是有些繁琐。这时候,我们就可以使用 formsy-material-ui-customized 这个 npm 包,它是一个针对 Material-UI 组件库进行了深度定制的 Formsy 扩展库。

安装

首先在项目目录下使用 npm 进行安装:

使用步骤

使用 formsy-material-ui-customized,我们需要先导入它们的组件:

然后我们就可以在表单中使用这些组件了,比如:

这里我们使用了 FormsyText 组件, 它是一个文本框,我们需要传入 name,label,required 等属性来自定义它的行为。如果用户没有填满这个文本框,那么 .isRequired 那儿的的文本信息会被显示。除此之外,Formsy 还支持很多其他类型的表单组件,如 FormsyCheckbox、FormsyRadioGroup、FormsyToggle 等,它们都支持相应类型的验证。

表单提交事件

表单提交事件通常是我们最重要的事件之一。在使用 Formsy 时,我们可以在 Formsy 中通过 onValidSubmit 或 onInvalidSubmit 这两个回调函数来处理表单的提交。它们分别在表单验证成功和验证失败时触发。

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

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

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

在这里,我们实现了一个简单的表单组件,并且指定了表单提交成功和失败的两个回调函数。 onValidSubmit 函数将 formData 作为它的参数,这个参数是一个对象,包含表单中的所有输入字段。onInvalidSubmit 函数将会抛出错误数组,包含了验证失败的字段和错误信息。这些错误信息可以用来定制我们的提示信息,帮助用户更容易地找到他们错误想要更改的字段。

更多特性

除了上述的特性外, formsy-material-ui-customized 还提供了很多其他便捷而有用的特性:

动态验证

对于某些表单元素来说,并不能根据固定的规则来验证,这时候 Formsy 的异步验证就可以派上用场了。异步验证可以对任意的表单元素进行验证,并且可以定制它的验证规则。比如,我们可以使用异步验证来验证用户名是否已经注册过:

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

在这里,我们使用 asyncValidations 选项传入了一个回调函数,它使用 api.checkUsername 去检查这个用户名是否已经注册过,在这个答复中,我们通过 callback() 来表示该用户名可以使用,如果检查失败,我们则使用 callback('This username is already taken') 来通知用户该用户名已经被占用了。

定制错误消息

如果你想要修改出现的错误消息,你只需要传入 validationErrors 的一个对象即可:

其他 Formsy 扩展

formsy-material-ui-customized 还扩展了一些其他的 Formsy 组件, 如 FormsYTimePicker、FormsyDatePicker、FormsyRadio 等等,而这些组件可以成为你开发表单时的首选,可以节约你的时间和精力。

总结

Formsy 在现代前端开发中广泛使用,而 formsy-material-ui-customized 则更加便捷地利用了 Material-UI 组件库,使我们能够快速构建和验证表单。它提供了许多有用的特性和易于使用的 API,并且支持异步验证和自定义错误提示。在后续的开发中,我们可以继续尝试使用其它表单验证组件,以便更好的提高我们的开发效率。

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

纠错
反馈