Categories
Vue Answers

How to use setTimeout with Vue.js?

Spread the love

Sometimes, we want to use setTimeout to run code after a delay with Vue.js.

In this article, we’ll look at how to use setTimeout to run code after a delay with Vue.js.

Use setTimeout with Vue.js

We can use setTimeout with Vue.js by passing in an arrow function as an argument into it.

For instance, we can write:

<template>
  <div id="app">
    <button @click="setShow">show</button>
    <p v-if="show">hello</p>
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
      show: false,
    };
  },
  methods: {
    setShow() {
      setTimeout(() => {
        this.show = true;
      }, 2000);
    },
  },
};
</script>

We have the setShow method that calls setTimeout with an arrow function that calls this.show to true as the first argument.

The 2nbd argument is the delay before running the callback in the first argument in milliseconds.

We’ve to use an arrow function to get the right value of this in the callback function.

this show be the component instance since arrow functions don’t bins to their value of this .

We set setShow as the value of the @click directive to run it when we click the button.

So when we click it, the div shows since show becomes true .

Conclusion

We can use setTimeout with Vue.js by passing in an arrow function as an argument into it.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *