Custom input
In this example, we’ll create a custom input with labels and error message handling. For every custom component, no additional setup is required beyond the standard Vue setup.
To handle errors
, we simply add an error
prop to the component, and the Form
will automatically populate the error message into that prop.
vue
<script lang="ts" setup>
defineProps<{
label: string;
error?: any;
}>();
const value = defineModel();
</script>
<template>
<div>
<label>{{ label }}</label>
<input type="color" v-model="value" />
<p v-if="error">{{ error }}</p>
</div>
</template>
Using the custom input
vue
<script lang="ts" setup>
import { useForm, createInput, ComponentProps } from 'vue-formify';
import CustomIput from './CustomIput.vue'
const { Form } = useForm();
const InputField = createInput<ComponentProps<typeof CustomIput>>(CustomIput);
</script>
<template>
<div>
<Form>
<InputField name="firstname" label="First name" />
</Form>
</div>
</template>