1、 Vue 组件代码如下:

Vue.component('timerBtn',{template: '<button v-on:click="run" :disabled="disabled || time > 0">{{ text }}</button>',props: {second: {type: Number,default: 60},disabled: {type: Boolean,default: false}},data:function () {return {time: 0}},methods: {run: function () {this.$emit('run');},start: function(){this.time = this.second;this.timer();},stop: function(){this.time = 0;this.disabled = false;},setDisabled: function(val){this.disabled = val;},timer: function () {if (this.time > 0) {this.time--;setTimeout(this.timer, 1000);}else{this.disabled = false;}}},computed: {text: function () {return this.time > 0 ? this.time + 's 后重获取' : '获取验证码';}}
});

2、使用方式:

<timer-btn ref="timerbtn" class="btn btn-default" v-on:run="sendCode"
:disabled="disabled" :second="60"></timer-btn>

disabled 建议不要绑定,我们可以通过调用组件的setDisabled方法来切换按钮可用状态;

second 初始值60s 没特别值可以不绑定;

所以我们可以在HTML页面这样:

<timer-btn ref="timerbtn" class="btn btn-default" v-on:run="sendCode" ></timer-btn>

JS这样:

var vm = new Vue({el:'#app',methods:{sendCode:function(){vm.$refs.timerbtn.setDisabled(true); //设置按钮不可用hz.ajaxRequest("sys/sendCode?_"+$.now(),function(data){if(data.status){vm.$refs.timerbtn.start(); //启动倒计时}else{vm.$refs.timerbtn.stop(); //停止倒计时}});},}
});

转载自:https://my.oschina.net/woter/blog/835753?hmsr=toutiao.io

Vue 短信验证码组件相关推荐

  1. 超简单!Vue 短信验证码组件开发详解

    1. Vue 组件代码如下: Vue.component('timerBtn',{template: '<button v-on:click="run" :disabled= ...

  2. vue短信验证码思路

    1.给获取验证码的按钮绑定事件,点击后禁⽤按钮并且开始倒计时(前端⼯作) 2. 然后前端发起ajax请求,请求后台提供的获取验证码接⼝ 传递⼿机号过去 3. 后台接收到前端请求后,⽣成⼀个验证码,然后 ...

  3. 2.vue3医疗在线问诊项目 - _登录模块 ==> 代码片段、css变量主题定制、cp-nav-bar组件封装、svg打包精灵图插件、cp-icon组件封装、表单校验、密码登录、短信验证码登录及两者

    2.医疗在线问诊项目 - _登录模块 ==> 代码片段.css变量主题定制.cp-nav-bar组件封装.svg打包精灵图插件.cp-icon组件封装.表单校验.密码登录.短信验证码登录及两者的 ...

  4. vue中获取短信验证码IOS手机问题

    vue使用中发现了一个问题,由于ios手机获取短信验证码后,验证码会直接显示在键盘上,点击键盘上的验证码即可给对应的input赋值,但是在项目开发中发现输入框的取值为空 经过排查是因为通过v-mode ...

  5. vue中获取短信验证码功能IOS手机问题

    vue使用中发现了一个问题,由于ios手机获取短信验证码后,验证码会直接显示在键盘上,点击键盘上的验证码即可给对应的input赋值,但是在项目开发中发现输入框的取值为空 经过排查是因为通过v-mode ...

  6. 5. SpringSecurity用户认证源码 与 实现短信验证码(自定义SpringSecurity组件)

    前言 源码讲解 源码分析 AbstractAuthenticationProcessingFilter.java UsernamePasswordAuthenticationFilter.java P ...

  7. vue element-ui实现获取短信验证码 ,60秒倒计时及页面

    cc废话不多说先上效果图  vue页面布局 <el-form-item prop="phoneCode" class="pr"><el-inp ...

  8. vue,一路走来(14)--短信验证码框的实现(类似支付密码框)

    由于项目的扩展,新增了很多功能,今天谈一下短信验证码框的实现. 思路:每个小方框其实就是单独的每一个input标签(叫假input标签),每个长度为1,然后上面再写一个大的input标签(叫真实inp ...

  9. vue实现通过手机号发送短信验证码登录

    <template><div class="get-mobile" @touchmove.prevent><div class="main& ...

  10. vue页面实现短信验证码60秒倒计时

    废话不多说,直接上代码. template <div class='single-wrapper fs14'><div class='single-mb'>短信验证</d ...

最新文章

  1. java中gso是什么意思_Java中用Gson解析json字符串
  2. 和华为hr电话面试的反思
  3. Java虚拟机内存区域---学习笔记
  4. java get key_java如何获取String里面的键值对:key=valuekey=value
  5. Centos 的安装(2)
  6. XNA 如何使用字体绘制文字,Windows Phone 游戏开发
  7. android设置动画循环播放,Android动画之AnimatorSet如何循环执行
  8. java接口文档编写_java api接口文档怎么编写?
  9. Max Script 入门教程
  10. Oracle 同义词详解(synonym)
  11. 5G(NR)网络中的SRB定义和类型
  12. Excel多条件计数——COUNTIFS【获奖情况统计】
  13. 比SUM函数还高级的求和函数,你知道吗?
  14. C# WebAPI 上传文件和图片
  15. PHPExcel 操作
  16. Dijkstra算法、Floyd算法的区别与联系,并由此谈到greedy和DP
  17. E销宝:dsp广告应该怎么投放?
  18. On-premises software 释义http://en.wikipedia.org/wiki/On-premises_software
  19. 使用Vue.js的简单拾色器
  20. P2300 合并神犇 DP

热门文章

  1. 【SQL】获取最近一周日期列表
  2. Android解决Can't create handler inside thread that has not called Looper.prepare()
  3. QT界面怎么让控件跟随窗口大小变化
  4. lisp方格网法计算土方量_方格网法计算土方量的步骤
  5. STM32F4 ETR计数
  6. Android HAL层
  7. uniapp 实现抽奖幸运大转盘功能
  8. FLOPS-定义每秒浮点运算次数
  9. ios 开发 flurry 资料
  10. Apache Pegasus 首次 Meetup 圆满落幕