Published on: 08 February, 2018

How to create custom directives in Vue.js?

Posted by andy | 46 views 0 likes 0 favourites 0 comments
Tumblr Digg Google Plus

In this tutorial, you will learn on how to create custom directives in Vue.js. We will create two custom directives that will perform a check for an input that will accept numbers only and another custom directive that will accept whole numbers only. We will implement blur event on the input and if the user has entered wrong input. It will return 0 as default value.

Let get started by importing the Vue.js library.

<script src=""></script>

Here are the javascript for our two custom directives in Vue.js.

Vue.directive('number', {
	bind(el, binding, vnode) {
		var inputHandler = function(e){
			if(isNaN(Number({ = 0;
		el.addEventListener("blur", inputHandler);

Vue.directive('whole-number', {
	bind(el, binding, vnode) {
		var inputHandler = function(e){
			if(!Number.isInteger(parseFloat({ = 0;
		el.addEventListener("blur", inputHandler);

To check for a number value, we can use the built-in Javascript isNaN and Number function. While for checking the whole number value, we can use the built-in Javascript isNaN and parseFloat function. We are using parseFloat rather than parseInt because if we pass a value of 1.23. The parseInteger function will return a value of 1 which will return a wrong assumption when we using the function Number.isInteger(). Therefore we use the parseFloat function instead.

This will be the code for our html parts.

<div id="example">
	<p>Numbers only: <input v-number></p>
	<p>Whole Numbers only: <input v-whole-number></p>

The final code is by calling the instance of Vue.js against the element of example in div tag HTML.

new Vue({
	el: "#example"

Demo of Custom Directives in Vue.js

You can see the demo of the above custom directives in here.

Numbers only:

Whole Numbers only:

If you have any question regarding with this article, feel free to post your comment below.


There are no comments available.

Write Comment
0 characters entered. Maximum characters allowed are 1000 characters.
Share your article with us and add your own google adsense account to earn extra money. Plus, you can promote a link back to your site.
Related Articles
Published on: 18 December, 2017
In this tutorial, you will learn how to create a Vue app to retrieve a JSON data using C# Web API and populate the data content into the form inputs using Vue. For this example, I will create a guestbook database table which will contain a FirstName, LastName and Email Address. I will use SQL Server to create this demo table.