基于vue、react实现倒计时效果


Posted in Javascript onAugust 26, 2019

本文实例为大家分享了基于vue、react实现倒计时效果的具体代码,供大家参考,具体内容如下

Vue

方案一:俩个元素

HTML:

<div id="example">
  <button @click="send">
   <span v-if="sendMsgDisabled">{{time+'秒后获取'}}</span>
   <span v-if="!sendMsgDisabled">send</span>
  </button>
</div>

JS:

var vm = new Vue({
  el: '#example',
  data() {
   return {
    time: 60, // 发送验证码倒计时
    sendMsgDisabled: false
   }
  },
  methods: {
   send() {
    let me = this;
    me.sendMsgDisabled = true;
    let interval = window.setInterval(function() {
     if ((me.time--) <= 0) {
      me.time = 60;
      me.sendMsgDisabled = false;
      window.clearInterval(interval); //停止
     }
    }, 1000);
   }
  }
 })

方案二:一个元素,改变文字

HTML:

<button type="button" @click='delusercache()' :disabled="sendMsgDisabled" v-text="btnText"></button>
//倒计时按钮禁用:disabled="sendMsgDisabled

JS:

var vm = new Vue({
  el: '#example',
  data() {
   return {
    time: 60, // 发送验证码倒计时
    sendMsgDisabled: false //按钮可用
   }
  },
  methods: {
   time(){
      this.sendMsgDisabled= true; //按钮不可用
      let interval = window.setInterval(()=> {
        this.btnText = this.time + 's重新发送'
        if ((this.time--) <= 0) {
          this.time = 120;
          this.btnText ='发送验证码'
          this.sendMsgDisabled= false; //按钮可用
          window.clearInterval(interval);
        }
      }, 1000);
    }
 })

React

引用块内容

time = () => {
    this.setState({ 
      times: this.state.times-1,
      btnText: '' + this.state.times + 's重新发送)',
      // discodeBtn: false,
      clearInterval:true
    })
    var siv = setInterval(() => {
      this.setState({ 
        times: this.state.times-1,
        btnText: '' + this.state.times + 's重新发送)',
        // discodeBtn: false,
        clearInterval:true
      }, () => {
        if (this.state.times === 0) {
          clearInterval(siv);
          this.setState({ 
            times: 60,
            btnText: '发送验证码', 
            // discodeBtn: true,
            clearInterval:false,
            phone:false,
            isDisabled:false
          })
        }
      });
    }, 1000);
  };
<button 
className={(this.state.clearInterval ? 'send-btn-disabled-m' : 'send-btn-default')} 
disabled={this.state.isDisabled} 
onClick={this.getPhone} >
{this.state.btnText}
</button>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript MD4
Dec 20 Javascript
JavaScript中出现乱码的处理心得
Dec 24 Javascript
如何在Angular.JS中接收并下载PDF
Nov 26 Javascript
jQuery插件fullPage.js实现全屏滚动效果
Dec 02 Javascript
浅谈Node.js:Buffer模块
Dec 05 Javascript
canvas仿iwatch时钟效果
Mar 06 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
May 22 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
Jun 09 Javascript
vue几个常用跨域处理方式介绍
Feb 07 Javascript
详解Js里的for…in和for…of的用法
Mar 28 Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 09 Javascript
如何构建一个Vue插件并生成npm包
Oct 26 Javascript
tweenjs缓动算法的使用实例分析
Aug 26 #Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
Aug 26 #Javascript
JS实现提示效果弹出及延迟隐藏的功能
Aug 26 #Javascript
小程序实现层叠卡片滑动效果
Aug 26 #Javascript
微信小程序 数据缓存实现方法详解
Aug 26 #Javascript
使用typescript构建Vue应用的实现
Aug 26 #Javascript
微信小程序实现手势滑动卡片效果
Aug 26 #Javascript
You might like
yii操作session实例简介
2014/07/31 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
input输入框鼠标焦点提示信息
2015/03/17 Javascript
javascript中几个容易混淆的概念总结
2015/04/14 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
什么是数组名
2012/05/10 面试题
面包店的创业计划书范文
2014/01/16 职场文书
国培计划培训感言
2014/03/11 职场文书
中介业务员岗位职责
2014/04/09 职场文书
英文商务邀请函范文
2015/01/31 职场文书
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript