Skip to content

useField

useField 是一个用于表单字段管理的 Vue 组合式函数,提供单个字段的校验、状态管理等能力。

它能帮助你轻松处理:字段校验、字段状态追踪、值变更回调等常见场景。

此 API 源码:GitHub

使用方式

vue
<template>
  <seeFormItem label="用户名" prop="username">
    <seeInput v-model="formData.username" placeholder="请输入用户名" />
  </seeFormItem>
</template>

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

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

const {
  validateStatus,
  validateMessage,
  validate,
  resetField,
  clearValidate,
  handleChange,
  handleBlur,
} = useField({
  field: 'username',
  getValue: () => formData.username,
  trigger: 'blur',
  rules: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
  onValueChange: (value) => {
    formData.username = value;
  },
});
</script>

参数说明

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

参数名说明类型默认值
field字段名称(必填)string-
getValue获取字段当前值的函数(必填)() => unknown-
trigger校验触发方式'blur' | 'change''blur'
rules字段校验规则FormRule | FormRule[][]
onValueChange字段值变更回调(value: unknown) => void-

返回值说明

useField 返回一个包含字段操作方法和状态的对象:

名称说明类型
validateStatus当前校验状态Ref<'success' | 'error' | 'validating' | ''>
validateMessage当前校验错误信息Ref<string>
isValidating是否正在校验中Ref<boolean>
isDisabled是否禁用Ref<boolean>
isReadonly是否只读Ref<boolean>
isShowMessage是否显示校验错误信息Ref<boolean>
validate对字段进行校验(trigger?: string) => Promise<void>
resetField重置字段值和校验状态() => void
clearValidate清除字段校验信息() => void
handleChange处理字段值变更(触发 change 校验)(value: unknown) => void
handleBlur处理字段失焦(触发 blur 校验)() => void

辽 ICP 备 2025070134 号