Skip to content

dbssman/vue-form-handler

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date
Jan 24, 2023
Feb 5, 2023
Feb 5, 2023
Feb 5, 2023
Feb 7, 2023
Jan 26, 2023
Jan 19, 2023
Dec 20, 2022
Jan 25, 2023
Feb 3, 2023
Feb 7, 2023
Feb 3, 2023
Jan 19, 2023
Feb 3, 2023

Repository files navigation

vue-form-handler

The easy way of handling your vue forms

Build Status version downloads MIT License PRs Welcome

Buy Me A Coffee

πŸ“¦ Installation


yarn add vue-form-handler

npm i --save vue-form-handler

πŸš€ Features


  • πŸ’ͺ Type strong: Written in TypeScript
  • πŸ”© Flexible: you can wrap the form handler over native inputs or any other like the ones from material libraries or custom inputs.
  • πŸͺΆ Super light: Small package size
  • πŸ’» DX: Great development experience

πŸ¦„ Usage


Basic usage

<template>
	<form @submit.prevent="handleSubmit(successFn)">
		<input v-bind="register('firstName')" />
		<input v-bind="register('lastName')" />
		<input v-bind="register('age')" type="number"/>
		<input type="submit"/>
	</form>
</template>
<script setup lang="ts" >
import { useFormHandler } from 'vue-form-handler';
const { register, handleSubmit } = useFormHandler();
const successFn = (form: Record<string,any>) => {console.log({form})}
</script>

Validations

<template>
	<form @submit.prevent="handleSubmit(successFn)">
		<input v-bind="register('firstName',{
			required:'This field is required'
		})" />
		<p>{{formState.errors.firstName}}</p>
		<input v-bind="register('lastName')" />
		<input v-bind="register('age', {
			min:{
				value: 18,
				message: 'Your age is below the accepted range'
			}
		})" type="number" />
		<p>{{formState.errors.age}}</p>
		<input type="submit"/>
	</form>
</template>
<script setup lang="ts" >
import { useFormHandler } from 'vue-form-handler';
const { formState, register, handleSubmit } = useFormHandler();
const successFn = (form: Record<string,any>) => {console.log({form})}
</script>

Integration with Material frameworks

<template>
	<form @submit.prevent="handleSubmit(successFn)">
		<q-input v-bind="register('name')" />
		<q-checkbox v-bind="register('married')"/>
		<q-select v-bind="register('pet')" :options="['dog','cat','mouse']"/>
		<input type="submit"/>
	</form>
</template>
<script setup lang="ts" >
import { useFormHandler } from 'vue-form-handler';
const { formState, register, handleSubmit } = useFormHandler();
const successFn = (form: Record<string,any>) => {console.log({form})}
</script>

For a more advanced usage visit the Docs

πŸ“ˆ Project activity


Alt

πŸ’œ Thanks


This project is heavily inspired by other awesome projects like:

πŸ“„ License


MIT License Β© 2022-PRESENT Dennis Bosmans