在Ant Design Vue 2.x中编写自定义表单组件可以通过以下步骤实现:
以下是一个示例的自定义表单组件的代码:
<template>
<a-form-item :label="label">
<a-input v-model="value" :placeholder="placeholder" />
</a-form-item>
</template>
<script>
import { AFormItem, AInput } from 'ant-design-vue';
export default {
name: 'CustomFormInput',
components: {
AFormItem,
AInput,
},
props: {
label: {
type: String,
required: true,
},
value: {
type: [String, Number],
required: true,
},
placeholder: {
type: String,
default: '',
},
},
};
</script>
在父组件中使用自定义表单组件的示例代码:
<template>
<a-form :form="form" @submit="handleSubmit">
<custom-form-input label="Username" v-model="formData.username" />
<custom-form-input label="Password" v-model="formData.password" />
<a-form-item>
<a-button type="primary" html-type="submit">Submit</a-button>
</a-form-item>
</a-form>
</template>
<script>
import CustomFormInput from './CustomFormInput.vue';
import { AForm, AFormItem, AButton } from 'ant-design-vue';
export default {
name: 'ParentComponent',
components: {
CustomFormInput,
AForm,
AFormItem,
AButton,
},
data() {
return {
form: {},
formData: {
username: '',
password: '',
},
};
},
methods: {
handleSubmit() {
this.form.validateFields((err, values) => {
if (!err) {
// 处理表单提交逻辑
}
});
},
},
};
</script>
在上述示例中,CustomFormInput是一个自定义的表单组件,父组件ParentComponent使用了Ant Design Vue的Form组件包裹自定义表单组件,并通过v-model实现了与表单项的双向绑定。在handleSubmit方法中,使用了Form组件的validateFields方法进行表单项的验证,可以根据需要进行错误处理或提交逻辑的处理。
注意:以上示例中的代码仅为演示目的,实际使用时需要根据具体需求进行适当的调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云