npm 包 scrnhq-formik 使用教程

阅读时长 8 分钟读完

在前端开发中,表单是我们经常会遇到的问题。为了避免重复的劳动和提高效率,我们常常会选择使用一些现成的解决方案来处理表单的验证和提交。在这方面,本文要介绍的 scrnhq-formik 是一个非常实用的 npm 包。

什么是 scrnhq-formik

scrnhq-formik 是一个基于 React 的表单处理库。它提供了一种简洁且易于使用的方式来处理表单的验证、错误反馈和提交操作。相比较传统的表单处理方案,scrnhq-formik 的代码更为简洁,并且提供了更加友好的 API 和可定制性。

如何使用 scrnhq-formik

使用 scrnhq-formik 先要安装它。你可以使用以下命令进行安装:

安装完成后,在你需要处理表单的组件中引入 scrnhq-formik:

基本使用方式

我们来看一个基本的例子:

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

在这个例子中,我们定义了一个表单,它包含了两个输入框和一个提交按钮。我们通过 initialValues 参数设置了表单中的初始值,通过 onSubmit 参数设置了表单提交时的回调函数。在 Formik 中,我们需要将渲染表单的函数嵌套在组件中,并将需要的参数传递给这个渲染函数。在这个例子中,我们传递了 handleChange 和 handleSubmit 函数和当前表单值 values。

表单验证和错误

除了初始值和提交回调函数,Formik 还提供了一个 validationSchema 参数来设置表单的验证规则。它可以帮助我们规范输入内容的有效性,并显示错误消息。

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

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

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

在这个例子中,我们使用了 yup 库来定义了一个关于 username 和 password 两个输入框的验证规则,根据这个规则,username 必须输入,而 password 的长度必须大于 8。然后我们将这个规则传递给了 validationSchema 参数,在我们提交表单时这个规则就会被调用。

在表单的渲染处理中,我们使用 has-error 类来表示输入框有错误,并根据 errors 和 touched 属性来判断错误是否存在,并在有错误的输入框下方显示对应的错误信息。

验证错误

在表单验证存在错误的情况下,我们通常需要根据界面给出适当的错误提示。scrnhq-formik 提供了一个错误提示组件 ErrorMessage,可以帮我们快速的显示错误信息。

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

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

在这个例子中,我们调用了 scrnhq-formik 提供的 ErrorMessage 组件,并传递了对应 Input 的 name。这个组件会根据 name 和当前 Formik 实例的错误信息自动显示错误信息。

更高级的使用

scrnhq-formik 支持我们自定义表单控制器和提交时的数据处理。我们可以通过自定义表单控制器来处理各种复杂的表单控件,而通过自定义 onSubmit 回调函数来处理数据的提交。

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

在这个例子中,我们使用 axios 库来处理表单数据的提交,并设置了一个提交成功的提示框,并调用 setSubmitting 函数通知 Formik 组件数据提交已完成。

总结

scrnhq-formik 是一个非常好用的表单处理库,它简化了表单的处理和验证,提供了友好的 API 和丰富的可定制性。我们在实际的开发过程中,可以根据自己的需要进行配置和使用。希望本文对你有所启发。

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

纠错
反馈