前言
在项目中用ant-design-vue 来做开发,用到的表单涉及到自定义组件,想用v-decorator的机制来统一的做表单验证,通过查询antdv的官网和vue的官网有了思路,v-decorator本质上就是在v-modal的基础上加了一些验证相关的规则和功能,而v-modal是通过对组件value和 onchange函数的管理来实现表单数据的双向绑定的,那我们只要给自定义组件添加value字段和onchange函数即可实现用v-decorator验证自定义组件。
1. 了解v-decorator的本质和绑定的过程
要使用好别人的工具最好的方式就是查看官方文档,根据ant-design-vue的官方文档,我们知道,v-decorator实际上是单文件组件下getFieldDecorator方法的一个语法糖写法。
那getFieldDecorator方法又是做什么的呢?
使用getFieldDecorator方法就是管理组件的value和onChange方法。这个描述是不是和vue 中v-modal的描述很像?
根据这个描述,我们只要把自定义组件想要被管理的数据传给value,在改变的时候触发“change”方法。就可以用上v-decorator了。
2. 例子:给自定义的列表组件绑定v-decorator
-
添加变量和变量更改后需要触发的事件。
一般来说就是用value和onChange,但是有时候value变量另有用途或者onChange函数不能满足我们的需求。我们可以通过vue提供的一个对v-modal配置的接口来将默认的value和onChange改成其他的变量和自定义函数。具体的介绍可以参考官网的说明
modal:{
prop:'value',
event:"change"
}
- 除了在modal上设定之外还必须在props上添加需要被管理的变量名
props: