npm 包 vuelma-form 使用教程

阅读时长 13 分钟读完

前言

在前端开发中,表单是必不可少的组件之一。然而,在实现表单功能时,很多开发者都会遇到重复性高、代码量大、难以维护等问题。为了解决这些问题,一些前端开发工程师们为大家带来了众多实用的 npm 包。

其中,vuelma-form 是一个基于 Vue.js 的表单组件 npm 包,能够有效地简化表单的开发过程。本文将会详细介绍如何使用该 npm 包。

安装

使用 npm 安装 vuelma-form:

使用方法

引入组件

使用组件前,需要先在 Vue.js 中引入该组件。方法如下:

在模板中使用组件

组件引入成功之后,就可以在 Vue 实例中的模板代码中使用该组件了。

上述代码中,@submit 是在提交表单时触发的事件,submitForm 是对应的事件处理函数;:form-data 是表单的数据来源。

表单元素

vuelma-form 支持多种表单元素,包括输入框、多选框、单选框、下拉框等等。每个表单元素都需要传入对应的 prop 属性。例如:

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

上面的代码中,每个表单元素都必须传入一个标识符 prop 属性。该属性值需要与数据来源 formData 中的属性名称保持一致。例如:

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

表单验证

表单验证是表单组件的重要功能之一。vuelma-form 通过 rules 属性提供了表单验证功能。例如:

上面的代码中,通过 prop 属性引用了四个文本输入框。并且使用 :rules 绑定了验证规则:

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

每个 prop 属性都需要配置对应的验证规则,支持的规则参见官方文档。该示例中,namephoneageaddress 四个属性都被配置了不同的验证规则。除了必填、正则匹配等基本规则外,还可以限制输入长度、数值大小等。

值得一提的是,vuelma-form 还支持异步验证,例如:

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

自定义表单元素

如果系统中自带的表单元素不能满足开发需求,我们可以通过 vue 的插槽(slot)功能,自定义表单元素。例如:

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

上面的代码中,我们使用了 template 标签并指定了自定义元素的 slot 名称为 age。

示例代码

下面给出一个完整的例子,如何使用 vuelma-form 实现一个基本的登录功能:

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

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

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

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

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

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

总结

vuelma-form 是一个简单、实用的表单组件 npm 包。通过本文的介绍,相信大家已经对该组件有了一定的了解。在实际开发中,vuelma-form 能够大大降低开发难度,提高代码复用率,节约时间和精力成本。当然,在使用该组件时,我们也需要注意文档的使用方法,这样才能真正发挥组件的效果。

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

纠错
反馈