🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

Simple, lightweight model-based validation for Vue.js.

Featured Form

Documentation

vuelidate

codecov gzip size

Simple, lightweight model-based validation for Vue.js

Features & characteristics:

  • Model based
  • Decoupled from templates
  • Dependency free, minimalistic library
  • Support for collection validations
  • Support for nested models
  • Contextified validators
  • Easy to use with custom validators (e.g. Moment.js)
  • Support for function composition
  • Validates different data sources: Vuex getters, computed values, etc.

Demo & docs

https://vuelidate.netlify.com/

Installation

npm install vuelidate --save

You can import the library and use as a Vue plugin to enable the functionality globally on all components containing validation configuration.

import Vue from 'vue' import Vuelidate from 'vuelidate' Vue.use(Vuelidate)

Alternatively it is possible to import a mixin directly to components in which it will be used.

import { validationMixin } from 'vuelidate'  var Component = Vue.extend({   mixins: [validationMixin],   validations: { ... } })

The browser-ready bundle is also provided in the package.

<script src="vuelidate/dist/vuelidate.min.js"></script> <!-- The builtin validators is added by adding the following line. --> <script src="vuelidate/dist/validators.min.js"></script>
Vue.use(window.vuelidate.default)

Basic usage

For each value you want to validate, you have to create a key inside validations options. You can specify when input becomes dirty by using appropriate event on your input box.

import { required, minLength, between } from 'vuelidate/lib/validators'  export default {   data () {     return {       name: '',       age: 0     }   },   validations: {     name: {       required,       minLength: minLength(4)     },     age: {       between: between(20, 30)     }   } }

This will result in a validation object:

$v: {   name: {     "required": false,     "minLength": false,     "$invalid": true,     "$dirty": false,     "$error": false,     "$pending": false   },   age: {     "between": false     "$invalid": true,     "$dirty": false,     "$error": false,     "$pending": false   } }

Checkout the docs for more examples: https://vuelidate.netlify.com/

Contributing

# install dependencies npm install  # serve with hot reload at localhost:8080 npm run dev  # create UMD bundle. npm run build  # Create docs inside /gh-pages ready to be published npm run docs  # run unit tests npm run unit  # run all tests npm test

For detailed explanation on how things work, checkout the guide and docs for vue-loader.

Contributors

Current

Emeriti

Here we honor past contributors who have been a major part on this project.

License

MIT


You May Also Like