教程 yup tutorial

对象与嵌套

Yup 支持对象类型验证,可以对对象的每个字段进行独立校验,也支持嵌套对象的验证。

定义对象 Schema

js
import * as yup from "yup";

const userSchema = yup.object({
  name: yup.string().required("姓名不能为空"),
  age: yup.number().required("年龄不能为空").positive().integer(),
  email: yup.string().email("邮箱格式不正确")
});

`

  • yup.object({...}):定义对象模式
  • 对象内部每个字段都可以使用 Yup 的各种类型和规则

嵌套对象

js
const schema = yup.object({
  user: yup.object({
    name: yup.string().required(),
    age: yup.number().positive()
  }).required()
});
  • 嵌套对象使用 yup.object()
  • 可以递归定义多层嵌套

嵌套数组中的对象

js
const schema = yup.object({
  users: yup.array().of(
    yup.object({
      name: yup.string().required(),
      age: yup.number().positive()
    })
  )
});
  • yup.array().of(schema):数组中的每个元素都必须符合指定 Schema
  • 常用于表单中动态添加多条记录

小结

  • yup.object() 定义对象模式
  • 支持嵌套对象和数组
  • 每个字段可以单独定义验证规则