Vue implements a small countdown function

Vue implements a small countdown function

Countdown function needs to be implemented in many projects, for example: sending verification code. Now let's take an example to implement a simple countdown button function. Simple layout, simple operation, simple effect, and most importantly, understanding of the ideas and countdown steps! ! !

For example, the code is as follows:

Requirements: Click the submit button and count down for five seconds. During the countdown, the input box and submit button are disabled. After the countdown ends, the input box and submit button return to normal state.

1. First implement the required HTML layout and add click events

<div>
    <!-- disabled is true to disable -->
    Input box: <input type="text" :disabled="istrue">
    <button @click="addHandle" :disabled="istrue">Submit</button>
    <!-- Countdown text prompt-->
    <p>{{this.txt}}</p>
</div>

2. Click the submit button and the countdown starts to change to disabled state. Define a timer

<script>
export default {
  data(){
    return {
      txt:'',
      istrue:false,
      inp:''
    }
  },
  methods:{
    addHandle(){
      //define n=5 seconds let n=5
      //Define the timer time
      let time = setInterval(()=>{
        //Disable this.istrue=true
        //Change the countdown text prompt this.txt=n+'Submit in seconds'
        n--
        //If n<0, clear the timer, cancel the disabled state, and the text prompt is empty (not displayed)
        if(n<0){
          this.txt=""
          this.istrue=false
          clearInterval(time)
        }
      },1000)
    }
  }
}
</script>

The ideas and steps are written in the comments above, and a simple countdown is easily achieved.

Overall code:

<template>
  <div>
    <!-- disabled is true to disable -->
    Input box: <input type="text" :disabled="istrue">
    <button @click="addHandle" :disabled="istrue">Submit</button>
    <!-- Countdown text prompt-->
    <p>{{this.txt}}</p>
  </div>
</template>
<script>
export default {
  data(){
    return {
      txt:'',
      istrue:false,
      inp:''
    }
  },
  methods:{
    addHandle(){
      //define n=5 seconds let n=5
      //Define the timer time
      let time = setInterval(()=>{
        //Disable this.istrue=true
        //Change the countdown text prompt this.txt=n+'Submit in seconds'
        n--
        //If n<0, clear the timer, cancel the disabled state, and the text prompt is empty (not displayed)
        if(n<0){
          this.txt=""
          this.istrue=false
          clearInterval(time)
        }
      },1000)
    }
  }
}
</script>

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • Vue writes a simple countdown button function
  • Simple implementation of the 60-second countdown function of the vue verification code
  • Vue2.0 countdown plug-in (timestamp refresh jump is not affected)
  • SMS verification code countdown demo based on vue
  • Vue implements the countdown function of the mall flash sale
  • Vue implements countdown to get verification code effect
  • Vue implements the countdown function of the verification code button
  • Multiple countdown implementation code examples in Vue
  • Detailed explanation of designing a countdown component in Vue
  • Vue+canvas realizes a countdown plug-in with cool clock effects (a vue2 plug-in that has been published to npm and can be used out of the box)

<<:  Introduction to adding new users to MySql, creating databases for users, and assigning permissions to users

>>:  Docker container monitoring and log management implementation process analysis

Recommend

Vue+Openlayer uses modify to modify the complete code of the element

Vue+Openlayer uses modify to modify elements. The...

Detailed explanation of Vue routing router

Table of contents Using routing plugins in a modu...

JavaScript implements Tab bar switching effects

Here is a case that front-end developers must kno...

An example of using CSS methodologies to achieve modularity

1. What are CSS methodologies? CSS methodologies ...

Getting Started with Nginx Reverse Proxy

Table of contents Overview The role of reverse pr...

How to write the style of CSS3 Tianzi grid list

In many projects, it is necessary to implement th...

Vue3 implements Message component example

Table of contents Component Design Defining the f...

MySQL performance optimization: how to use indexes efficiently and correctly

Practice is the only way to test the truth. This ...

Summary of all HTML interview questions

1. The role of doctype, the difference between st...

WeChat applet picker multi-column selector (mode = multiSelector)

Table of contents 1. Effect diagram (multiple col...

mysql update case update field value is not fixed operation

When processing batch updates of certain data, if...

Detailed explanation of the use of mysql explain (analysis index)

EXPLAIN shows how MySQL uses indexes to process s...