- 表单校验的绑定(父子组件嵌套)
这里的ref实例对象是确保子组件ref="metaTagForm"不能为空值设立的。
父组件为dialog弹窗
子组件是嵌套其中的form表单
vue3的表单校验和vue2的大差不差,
首先 :rules="rules" 为表单绑定规则,然后rules声明之后为标注了prop类型的formitem进行配对设置校验
这里需要注意的是vue3需要额外注册 FormRules,FormInstance
一个是为了使用ele的校验功能,一个则是将 form的校验绑定到该form的ref实例对象上,方便父组件获取。
如若需要自定义校验,和vue2一样使用 validator: validateType,
ps:图中还有显示<MetaTag>是因为搭配了TS type,里面对数据进行了规定类型操作。
其实按照图上的流程走是表单校验没有问题的!
但是问题出在笔者一开始犯了一个小错误,将子组件的 :model写成了v-model,这样就会导致父子组件无法双向数据绑定。
v-model是用于实现表单元素与Vue实例中数据的双向绑定,而:model是用于将Vue实例中的数据属性绑定到HTML元素的某个属性上。
可以换句话描述就是v-model等于线对面,而:model等于点对线。涉及到父子组件嵌套,不能全都使用v-model!!