Skip to content

useForm

useForm 是一个用于表单管理的 Vue 组合式函数,提供表单数据绑定、校验、重置等能力。

它能帮助你轻松处理:表单数据管理、表单校验、字段联动、表单重置等常见场景。

此 API 源码:GitHub

使用方式

vue
<template>
  <seeForm ref="formRef" :model="formData" :rules="rules">
    <seeFormItem label="用户名" prop="username">
      <seeInput v-model="formData.username" placeholder="请输入用户名" />
    </seeFormItem>
    <seeFormItem label="邮箱" prop="email">
      <seeInput v-model="formData.email" placeholder="请输入邮箱" />
    </seeFormItem>
    <seeFormItem>
      <seeButton type="primary" @click="handleSubmit">提交</seeButton>
      <seeButton @click="handleReset">重置</seeButton>
    </seeFormItem>
  </seeForm>
</template>

<script setup>
import { reactive } from 'vue';
import { useForm } from 'see-u-ui';

const formData = reactive({
  username: '',
  email: '',
});

const rules = {
  username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
  email: [{ required: true, message: '请输入邮箱', trigger: 'blur' }],
};

const { validate, resetFields, clearValidate } = useForm({
  model: formData,
  rules,
});

const handleSubmit = async () => {
  try {
    await validate();
    console.log('校验通过', formData);
  } catch (error) {
    console.log('校验失败', error);
  }
};

const handleReset = () => {
  resetFields();
};
</script>

参数说明

useForm(options) 接收一个配置对象作为参数:

参数名说明类型默认值
model表单数据对象(必填)Record<string, unknown>-
rules校验规则Record<string, FormRule | FormRule[]>{}
labelPosition标签位置'left' | 'right' | 'top''right'
labelWidth标签宽度string | number'auto'
isDisabled是否禁用整组booleanfalse
isReadonly是否只读整组booleanfalse
isRequiredAsterisk是否显示必填星号booleantrue
isShowMessage是否显示校验错误信息booleantrue
isInline是否行内模式booleanfalse
size尺寸'small' | 'default' | 'large''default'

返回值说明

useForm 返回一个包含表单操作方法的对象:

方法名说明参数返回值
validate对整个表单进行校验callback?: (valid: boolean) => voidPromise<boolean>
validateField对部分字段进行校验props: string | string[], callback?: (valid: boolean) => voidPromise<void>
resetFields重置表单字段值props?: string | string[]void
clearValidate清除表单校验信息props?: string | string[]void
scrollToField滚动到指定表单字段prop: stringvoid
getFieldsValue获取表单所有字段值-Record<string, unknown>
setFieldsValue设置表单字段值values: Record<string, unknown>void

辽 ICP 备 2025070134 号