Appearance
useFormLayoutContext
在自定义表单项(type 指定的组件)、插槽或 content 中,获取外层 DataForm 的上下文,包括表单实例方法、数据模型和配置。
ts
import { useFormLayoutContext } from 'yoyoo-ui'使用场景
1. 自定义表单项中调用表单方法
ts
import { useFormLayoutContext } from 'yoyoo-ui'
// 在自定义组件 setup 中
const { form, model, props } = useFormLayoutContext()
// 触发表单校验
form.validate()
// 重置表单
form.resetFields()
// 滚动到指定字段
form.scrollToField('username')2. 读取或监听表单数据
ts
const { model } = useFormLayoutContext()
// model 是响应式的,可 watch 数据变化
watch(() => model.value.name, (val) => {
console.log('姓名变化:', val)
})3. 读取表单配置
ts
const { props } = useFormLayoutContext()
// 获取表单的 labelWidth、labelPosition 等配置
console.log(props.labelWidth)
console.log(props.labelPosition) // 'top' | 'left'返回值
FormContext 对象包含以下属性:
| 属性 | 类型 | 说明 |
|---|---|---|
| form | FormLayoutExpose | 表单实例,含 validate / resetFields / clearValidate / scrollToField 方法 |
| model | Ref<Record<string, any>> | 表单数据源(响应式),可直接读写 |
| props | FormProps | 表单配置项(labelWidth、labelPosition、textMode 等) |
| addHook | (name: HookType, fn: () => void) => void | 注册表单生命周期钩子 |