介绍
@zijin/form
是一个轻量级的前端表单组件库,它提供了一系列可重复利用的表单组件和相关的表单验证功能,以快速、便捷地开发前端表单为目的。
功能特性
- 支持常见的表单控件,如输入框、下拉框、单选框、多选框等。
- 支持表单验证,包括必填、长度、格式、逻辑检验等。
- 支持表单数据填充和获取,以及数据校验和提交。
- 提供了一些实用工具函数,如格式化日期、数字千位分隔等。
安装
使用 npm
安装:
npm i @zijin/form
使用
表单结构
@zijin/form
的表单结构分为 FormItem
(表单项)和 Form
(表单)两个组件,FormItem
包含了具体的表单控件,如 Input
、 Select
、 Checkbox
等,而 Form
则包含了一组 FormItem
以构建完整的表单。
下面是一个简单的表单例子:
-- -------------------- ---- ------- ---------- ----- ----------------- ------------------ ----------- --------- ---------- ------------ ------ ----------------------- -- ----------- --------- ---------- ----------- ------ ----------------------------- ------------- -- ----------- --------- ---------- -------------- ----------- -------------------------- ------ ---------------------- ------ ------------------------ ------------- ----------- --------- ---------- --------------- -------------- --------------------------- --------- --------------------------- --------- --------------------------- ---------------- ----------- ------- -------------- ------------------------------- ------- ----------- -------- ------ - ----- --------- ------ -------------- --------- ----------- ------ ------ - ---- ------------- ------ ------- - ----------- - ----- --------- ------ -------------- --------- ----------- ------ ------ -- ------ - ------ - --------- - ----- --- ---- -- ------- --- -------- -- -- ---------- - ----- -- --------- ----- -------- ------- --- ---- -- --------- ----- -------- ------- -- - ----- --------- -------- --------- --- ------- -- --------- ----- -------- ------- --- -------- -- --------- ----- ----- -------- ---- -- -------- ----------- -- - - -- -------- - ------------ - ------------------------------ -- - -- ------- - -- ------------- -------------------------- - -- - - - ---------
在这个例子中,我们首先引入了 @zijin/form
组件库所提供的相关组件,然后在模板中使用 Form
和 FormItem
构建了一个包含四个表单项的表单,并使用相应的验证规则对其进行验证。最后,我们使用 Button
元素绑定了表单提交事件,使用 this.$refs.form.validate()
方法对表单进行验证并执行提交操作。
表单控件
@zijin/form
提供了一系列与表单相关的控件,下面是这些控件的介绍及使用方法。
Input
Input
是一个基于 input
元素的文本输入框控件,支持 v-model
双向绑定、输入限制等功能。
<template> <FormItem label="姓名" prop="name"> <Input v-model="formData.name" placeholder="请输入姓名" /> </FormItem> </template>
主要属性:
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
value、v-model | string | 绑定输入框的值 | |
type | string | text | 输入框类型,可选值:text、number、password 等 |
placeholder | string | 输入框占位符 | |
maxLength | number | 最大输入长度 | |
minLength | number | 最小输入长度 | |
disabled | boolean | false | 是否禁用输入框 |
readonly | boolean | false | 是否只读 |
Select
Select
是一个下拉框控件,支持单选和多选两种模式,同时支持搜索和远程数据加载等高级功能。
-- -------------------- ---- ------- ---------- --------- ---------- ------------ ------- ----------------------- ---------------------- ------------------- -- ----------- --------- ---------- --------------- ------- -------------------------- ----------------------- -------- ------------------- -- ----------- ----------- -------- ------ ------- - ------ - ------ - --------- - ----- --- -------- -- -- ------------ - - ------ ----- ------ ---- -- - ------ ----- ------ ---- -- - ------ ----- ------ ---- - -- ------------- - - ------ -------- ------ ---- -- - ------ -------- ------ ---- -- - ------ ---------- ------ ---- - - - - - ---------
主要属性:
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
value、v-model | string / array | 绑定下拉框的值,当 multiple 为 true 时,绑定值为数组 |
|
options | array | 下拉框的选项,每个选项包含 value 和 label 两个属性 |
|
disabled | boolean | false | 是否禁用下拉框 |
multiple | boolean | false | 是否允许多选 |
clearable | boolean | false | 是否允许清空选项 |
filterable | boolean | false | 是否允许搜索选项 |
remote | boolean / function | false | 是否需要远程数据加载,可以传入一个函数进行自定义数据加载 |
Checkbox
Checkbox
是一个复选框控件,支持单选和多选两种模式。
-- -------------------- ---- ------- ---------- --------- ---------- --------------- -------------- --------------------------- --------- --------------------------- --------- --------------------------- --------- ----------------------------- ---------------- ----------- ----------- -------- ------ ------- - ------ - ------ - --------- - -------- -- - - - - ---------
主要属性:
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
value、v-model | string / array | 绑定复选框的值,当 CheckboxGroup 的 v-model 绑定的是数组时,绑定值为数组 |
|
label | string / number / boolean | 复选框的值 | |
disabled | boolean | false | 是否禁用复选框 |
Radio
Radio
是一个单选框控件。
-- -------------------- ---- ------- ---------- --------- ---------- -------------- ----------- -------------------------- ------ ---------------------- ------ ------------------------ ------------- ----------- ----------- -------- ------ ------- - ------ - ------ - --------- - ------- -- - - - - ---------
主要属性:
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
value、v-model | string / number / boolean | 绑定单选框的值 | |
label | string / number / boolean | 单选框的值 | |
disabled | boolean | false | 是否禁用单选框 |
表单验证
@zijin/form
提供了一套简单但实用的表单验证机制,可以满足大部分常用场景的需求。验证规则使用数组形式定义在 Form
的 rules
属性中,数组中每个元素为一个对象,可以定义多个验证条件,如果有一个验证条件不满足,则该表单项验证失败。
规则列表
下面是 @zijin/form
支持的验证规则:
规则名 | 参数 | 描述 |
---|---|---|
required | - | 判断字段是否必填 |
pattern | RegExp | 判断字段值是否符合指定的正则表达式 |
min | number | 判断字段值是否大于或等于指定值 |
max | number | 判断字段值是否小于或等于指定值 |
len | number | 判断字段值的长度是否等于指定值 |
equals | string | 判断字段值是否与指定值相等 |
type | string | 判断字段值的类型是否符合指定值,可选值: number、array 等 |
示例代码
下面是一个使用 @zijin/form
进行表单验证的例子:
-- -------------------- ---- ------- ---------- ----- ----------------- ------------------ ----------- --------- ---------- ------------ ------ ----------------------- -- ----------- --------- ---------- ----------- ------ ----------------------------- ------------- -- ----------- ------- -------------- ------------------------------- ------- ----------- -------- ------ ------- - ------ - ------ - --------- - ----- --- ---- - -- ---------- - ----- -- --------- ----- -------- ------- -- - ---- -- ---- --- -------- ----------------- --- ---- -- --------- ----- -------- ------- -- - ----- --------- ---- -- ---- ---- -------- -------------- -- - - -- -------- - ------------ - ------------------------------ -- - -- ------- - -- ------------- -------------------------- - -- - - - ---------
总结
@zijin/form
是一个实用的前端表单组件库,它提供了丰富的表单控件和验证功能,可以帮助我们快速开发前端表单。
在使用 @zijin/form
进行表单开发时,我们首先需要了解其组件结构,并对表单控件和验证规则有一定的掌握。此外,我们还需要注意一些细节问题,如表单数据绑定、表单验证等,以保障表单的正确性和可用性。
通过本文的介绍,相信读者已经对 @zijin/form
组件库有了一定的了解,并可以从中获得一些实用的前端开发技巧和经验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671d730d0927023822dd4