Sometimes, we want to run a function on input but with a delay with Vue.js and JavaScript.
In this article, we’ll look at how to run a function on input but with a delay with Vue.js and JavaScript.
How to run a function on input but with a delay with Vue.js and JavaScript?
To run a function on input but with a delay with Vue.js and JavaScript, we can use setTimeout.
For instance, we write:
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id='app'>
</div>
to add the Vue script and the app container.
Then we write:
const v = new Vue({
  el: '#app',
  template: `
    <div>
    	<input @input='onInput'>
      <div v-if='!isHidden'>hello</div>
    </div>
  `,
  data: {
    isHidden: true
  },
  methods: {
    onInput() {
      setTimeout(() => this.isHidden = false, 500);
    }
  }
})
to call onInput when the input event is triggered.
In onInput, we call setTimeout with a callback that sets this.isHidden to false to unhide the div after 500 milliseconds.
We use the v-if to only show the div with isHidden is false.
Conclusion
To run a function on input but with a delay with Vue.js and JavaScript, we can use setTimeout.
