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

CSS new feature contain controls page redrawing and rearrangement issues

Before introducing the new CSS property contain, ...

How to add website icon?

The first step is to prepare an icon making softwa...

How to install Linux flash

How to install flash in Linux 1. Visit the flash ...

Sample code on how to implement page caching in vue mobile project

background On mobile devices, caching between pag...

How to install mysql6 initialization installation password under centos7

1. Stop the database server first service mysqld ...

Detailed examples of float usage in HTML/CSS

1. Basic usage examples of float 1. Let's fir...

How to remotely connect to the cloud server database using Navicat

It is very convenient to connect to a remote serv...

Complete steps for Nginx to configure anti-hotlinking

need: Usually, sites want to prevent videos and p...

Explanation of the configuration and use of MySQL storage engine InnoDB

MyISAM and InnoDB are the most common storage eng...

How many pixels should a web page be designed in?

Many web designers are confused about the width of...

Detailed installation and configuration of Subversion (SVN) under Ubuntu

If you are a software developer, you must be fami...

Native js to implement a simple calculator

This article example shares the specific code of ...