Vue.js Directives


Vue.js directives are special attributes that allow you to add behavior to HTML elements and manipulate the DOM. They are one of the most powerful features of Vue.js, as they allow you to create dynamic and interactive web applications with ease.

In this document, we will cover how to use both built-in directives like v-if and v-for, as well as how to create custom directives.

Built-in Directives

Vue.js comes with several built-in directives that you can use to manipulate the DOM and add behavior to HTML elements.


The v-if directive is used to conditionally render a block of HTML based on a Boolean expression. For example, if we have a showMessage Boolean data property, we can use v-if to show or hide a message:

<div v-if="showMessage">
  This is a message!

The v-if directive only renders the HTML block if the expression inside the directive is true. If the expression is false, the HTML block is not rendered at all.


The v-for directive is used to render a list of items based on an array. For example, if we have an array of numbers, we can use v-for to render a list of li elements:

  <li v-for="number in numbers" :key="number">
    {{ number }}

In this example, numbers is an array of numbers, and :key is a special attribute used to help Vue.js keep track of the elements in the list. The v-for directive loops through the numbers array and renders an li element for each number in the array.

Custom Directives

In addition to built-in directives, Vue.js allows you to create your own custom directives. Custom directives can be used to encapsulate often-used behavior or to manipulate the DOM in a more complex way.

To create a custom directive, you can use the Vue.directive method. For example, let’s create a custom directive that changes the background color of an element when it is clicked:

Vue.directive('click-bg', {
  bind: function (el, binding) {
    el.addEventListener('click', function () { = binding.value;

In this example, we are creating a custom directive called click-bg. The bind function is called when the directive is bound to an element, and it sets up an event listener to change the background color when the element is clicked. The binding parameter contains information about the directive, such as the value passed to it.

To use the click-bg directive, we can simply add it to an element like this:

<div v-click-bg="'red'">Click me!</div>

In this example, we are binding the click-bg directive to a div element, and passing in the value red. When the div is clicked, its background color will change to red.


Vue.js directives are a powerful tool for manipulating the DOM and adding behavior to HTML elements. Whether you are using built-in directives like v-if and v-for, or creating your own custom directives, Vue.js makes it easy to create dynamic and interactive web applications. By mastering Vue.js directives, you can create rich and engaging user experiences that will delight your users.

Previous Post

Vue.js Instance

Next Post

Vue.js Components

Related Posts