子组件

<template>
<a class="getvalidate":class="{gray: (!stop)}"@click='clickHandler'>
{{ stop ? '获取验证码' : `(${mytimer})秒后重新获取` }}
</a>
</template> <script>
export default {
name: 'getvalidate',
data () {
return {
stop : true,
mytimer: this.timer,
Interval: null,
}
},
methods: {
clickHandler (e) {
if (this.stop) {
// 调用外部绑定的倒计时,并且给它开关
this.$emit('click', this.startTimer);
}
},
update () {
if (this.mytimer <= 1) {
// 重置计数
this.mytimer = this.timer
// 清除计时器
clearInterval(this.Interval)
// 允许启动倒计时
this.stop = true
} else {
// 倒计时
this.mytimer--;
}
},
startTimer () {
// 开始循环执行update函数
this.Interval = setInterval(this.update, 1000)
// 禁止启动倒计时
this.stop = false;
}
},
props: {
timer: {
default: 60,
type: Number
}
}
}; </script> <style lang="scss" scoped>
@import "./../sass/variables";
@import "./../sass/func"; .getvalidate {
color: #0e6ae7;
font-size: pxToRem(28px);
width: 100%;
text-align: right; &.gray {
color: #999;
}
}
</style>

父组件调用示例

<template>
<div id="ForgetPwd">
<div class="form">
<mt-field topLabel = '请输入手机号' errTopLabel='' type = "number" placeholder = '请输入11位手机号码' v-model = 'user' :maxlength = '11'></mt-field>
<mt-field topLabel = '验证码' errTopLabel='' type = "number" placeholder = '请输入6位验证码' v-model = 'validate' :maxlength = '6'>
<getvalidate slot="icon" @click="getCode"></getvalidate>
</mt-field>
<button class="button" :class="{disable: user === '' || validate === ''}" @click="go">下一步</button>
</div>
</div>
</template> <script>
import mtField from '@components/field/field.vue'
import Toast from '@components/toast/index.js'
import Loader from '@components/loader/index.js'
import getvalidate from '@myComponents/getvalidate' export default {
name: 'ForgetPwd',
data () {
return {
user:'13713332652',
validate: '123456'
}
},
methods: {
go () { },
getCode (cb) {
Loader.show("正在获取验证码")
window.setTimeout(_ => {
Loader.hideAll()
cb()
}, 2000)
},
},
components: {
mtField,
getvalidate
}
}
</script>

Vue 获取验证码倒计时组件的更多相关文章

  1. vue获取验证码倒计时

    <template> <div> <el-button :disabled="disabled" @click="sendcode" ...

  2. vue实现验证码倒计时60秒的具体代码

    vue实现验证码倒计时60秒的具体代码 <span v-show="show" @click="getCode">获取验证码</span> ...

  3. Andorid实现点击获取验证码倒计时效果

    这篇文章主要介绍了Andorid实现点击获取验证码倒计时效果,这种效果大家经常遇到,想知道如何实现的,请阅读本文   我们在开发中经常用到倒计时的功能,比如发送验证码后,倒计时60s再进行验证码的获取 ...

  4. Android 获取验证码倒计时实现

    Android 获取验证码倒计时实现 2017年10月24日 09:55:41 FBY展菲 阅读数:2002    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  5. angular中service封装$http做权限时拦截403等状态及获取验证码倒计时、跨域问题解决

    封装$http.做权限时拦截403等状态及获取验证码倒计时: 拦截接口返回状态 var app = angular.module('app'); app.factory('UserIntercepto ...

  6. 前端学习——ionic/AngularJs——获取验证码倒计时按钮

     按钮功能为:点击"获取验证码"--按钮不可用-设置倒计时-60秒后重新获取. 代码借鉴于:http://plnkr.co/edit/Swj82MpJSix3a47jZRHP?p= ...

  7. Android中注册获取验证码倒计时按钮

    public class CountDownTimerUtils extends CountDownTimer { private TextView mTextView; /** * @param t ...

  8. iOS开发之--获取验证码倒计时及闪烁问题解决方案

    大家在做验证码的时候一般都会用到倒计时,基本上大家实现的方式都差不多,先贴出一些代码来.. -(void)startTime{ __block ; //倒计时时间 dispatch_queue_t q ...

  9. js点击按钮获取验证码倒计时

    //发送验证码倒计时 var clock = ''; var nums = 60; var btn; $("#btnGetVerCode").click(function () { ...

随机推荐

  1. java 时间格式化中的模式字母

    java日期格式化中的模式字母有特定的意义,由于没有注意,今天在做工程的时候导致出现了奇怪的日期: 错误写法如下: 然而得到了错误的结果: 正确写法如下: 这样就得到了正确的结果 mm指的是分钟,MM ...

  2. CentOS下MySQL主从复制,读写分离

    1.环境:所有系统都是CentOS5.5 mysql-5.6.31-2.el5,MySQL中都没有数据 主服务器IP为192.168.128.230 从服务器IP为192.168.128.235 代理 ...

  3. 【二分答案】bzoj1639 [Usaco2007 Mar]Monthly Expense 月度开支

    #include<cstdio> using namespace std; #define N 100001 int n,m,a[N]; bool check(int x) { int n ...

  4. 将Java程序打jar包并运行

    1)接着上篇博客继续说手动编译之后,将代码打成jar包,然后直接“java -jar lz.jar"运行不成功的问题.还是先上代码: 这个是Demo类: package org.lz.dem ...

  5. 通过Roslyn动态生成程序集

    之前写过篇文章如何通过Roslyn构建自己的C#脚本,今天本来打算测试一下这部分API在新的版本中的变化,结果发现它的脚本引擎找不到了,翻了一下官方文档,貌似说暂时性的移除了.便看了一下它动态生成程序 ...

  6. Oracle TRCA 工具 说明 10046

    本篇文章主要介绍了"Oracle TRCA 工具 说明 ",主要涉及到Oracle TRCA 工具 说明 方面的内容,对于Oracle TRCA 工具 说明 感兴趣的同学可以参考一 ...

  7. tcpreplay 发包速率控制算法研究

    一.  序 1.1  tcpreplay历史 Tcpreplay 的作者是Aaron Turner,该项目开始于2000年,早期的功能是对tcpdump等抓包工具生成的网络包(即pcap文件)的回放, ...

  8. Qemu 有用的链接

    Qemu下载和编译 Download https://en.wikibooks.org/wiki/QEMU/Linux https://en.wikibooks.org/wiki/QEMU/Insta ...

  9. iOS 中json解析数据出现中文乱码的问题

    一般服务器的编码格式都是UTF8,这样通过json解析下来的的数据,一般中文是不会出现乱码,但是如果服务器的编码格式不是UTF8,通过json解析的数据中的中文容易出现luan乱码,怎么解决这个问题呢 ...

  10. struts2文件上传时获取上传文件的大小

    利用struts2框架上传文件时,如果想要获取上传文件的大小可以利用下面的方式进行: FileInputStream ins = new FileInputStream(file); if (ins. ...