一、功能和效果展示

1.组件功能

uniapp
(1)按钮初始显示“发送”,点击按钮后按钮显示倒计时60s;
(2)倒计时60s期间点击按钮,不会重置计时器;
(3)倒计时60s结束后,按钮恢复初始状态,显示“发送”;

2.效果展示

3.核心思路

  1. 点击“发送验证码”button,即可触发getCode()
  2. 设置time=60,timer为定时器
  3. 当time从60自减到0后,清除timer定时器,下次再点击就会重新倒计时60秒
  4. 若在timer定时器未被消除即time仍处于(0,60)范围时,点击“获取验证码”button触发的getCode()会直接return出去
getCode(){if(this.timer > 0) return//定时器timerthis.timer = null//倒计时60秒this.time = 60//每秒 time--this.timer = setInterval(()=>{this.time--if(this.time<= 0){//当time从60自减到0后,清除timer定时器,下次再点击就会重新倒计时60秒clearInterval(this.timer)}},1000)
}

二、完整代码实现

1. 绑定手机号页面

插入code-btn组件,传递获取的手机号的值到code-btn组件。
@/pages/bind-phone.vue

<template><view class="login-form"><view>绑定手机号</view><view class="login-input"><uni-icons type="person" size="20"></uni-icons><input type="tel" placeholder="请输入手机号" v-model="form.phone" /> </view><view><uni-icons type="locked" size="20"></uni-icons><input type="password" placeholder="验证码" v-model="form.phone" />//给code-btn组件传入手机号的值<code-btn phone="form.phone"></code-btn></view><view class="button-login" @click="submitPhone">绑定</view>
</template>

2.code-btn组件

@/components/code-btn.vue

<template><view class="code-btn" @click="getCode">{{time ? time + 's':'发送'}}</view>
</template>
<script>let timer = nullexport default {name:"code-btn",props:{phone:{type:[Number, String],default:''},},data(){return {time:0};},methods:{getCode(){if(this.timer > 0) return//调用api接口,接收验证码this.$api.getCaptchat({phone:this.phone}).then(res => {//当成功获取验证码时this.time = 60this.$toast('验证码:'+res)//每秒 time--this.timer = setInterval(()=>{this.time--if(this.time<= 0){clearInterval(this.timer)}},1000)}).catch(err => {//若获取验证码失败this.$toast(err,'请稍后重试')})}},}
</script>

uniapp | 发送手机验证码 button组件相关推荐

  1. UNIAPP实战项目笔记57 发送手机验证码 接入短信SDK

    UNIAPP实战项目笔记57 发送手机验证码 接入短信SDK 注册时候需要发送验证 通过验阿里云或腾讯云等短信sdk供应商 实际案例图片 后端接口文件 index.js var express = r ...

  2. jquery发送手机 验证码倒计时插件 支持页面刷新

    在最新项目中需要用到发送短信短信验证码,网上搜了半天找不到满意的,就自己写了一个. jquery封装好的发送手机验证码倒计时插件 采用cookie 防止页面刷新. 实现思路: 1.实现点击按钮,对手机 ...

  3. 如何封装一个vue组件(获取手机验证码的组件)

    如何封装一个vue组件(获取手机验证码的组件) 定义一个名为 item-time 的新组件,这是获取手机验证码的组件 Vue.component('item-time', {props: ['maxt ...

  4. 注册/找回密码等功能中发送手机验证码后倒计时效果的实现(基于vue)

    注册/找回密码等功能中发送手机验证码后倒计时效果的实现,基于vue.element-ui <template><el-button size="small" ty ...

  5. SpringBoot+vue 使用阿里云的短信功能发送手机验证码

    前言: 小编后端用的是Springboot 前端用的是vue ,小编主要是写后台,前端页面比较简陋,后期还要调优,写的不对处还望多多包涵. 环境: 需要先准备好阿里云的账号和一些必要的参数.详情见我的 ...

  6. python按照号段生成手机号接收验证码_django 发送手机验证码的示例代码

    一.流程分析: 1.用户在项目前端,输入手机号,然后点击[获取验证码],将手机号发到post到后台. 2.后台验证手机号是否合法,是否已被占用,如果通过验证,则生成验证码,并通过运行脚本,让短信运营商 ...

  7. java实现发送手机验证码功能

    1. 进入秒嘀科技(http://www.miaodiyun.com/),注册一个账号 2. 注册好之后,点击 用户中心 -> 账户管理,就会进入如下界面 (顺便提一下,新注册的用户,平台会免费 ...

  8. 手机验证码平台,怎么发送手机验证码,php开发手机验证码短信接口功能

    通过前面的学习, 你已经掌握怎么在腾讯短信平台上设置项目, 添加短信签名, 设置短信模板, 把手机验证码注册页面写好. 今天子恒老师来跟你分享怎么实现发送手机验证码给用户, 注意我们使用的是php开发 ...

  9. springMVC+阿里云API = 实现发送手机验证码短信

    springMVC+阿里云API = 实现发送手机验证码短信 前段时间vue框架做了一个旅游APP软件,其中在用户登录APP的时候,我不仅提供了用户可以自己手动先去注册账号在进行登陆App.然后我还提 ...

最新文章

  1. 评定星级的前端显示js
  2. Flask API TypeError: Object of type 'Response' is not JSON serializable
  3. MongoDB代码——Python篇
  4. mysql日期时间函数(常用的)
  5. 第二章 栈和队列(1)——顺序存储
  6. 年度最期待游戏废土2登陆Linux
  7. No JDK found. Please validate either IDEA_JDK, JDK_HOME or JAVA_HOME
  8. hadoop的安装与配置(伪分布式模式安装)
  9. POJ 2676/2918 数独(dfs)
  10. Android 多选列表
  11. RocketMq发送延迟消息
  12. Linux下go环境安装、环境配置并执行第一个go程序
  13. 我是如何投资数字货币的(1.2版)
  14. 使用函数验证哥德巴赫猜想:任何一个不小于 6 的偶数均可表示为两个奇素数之和
  15. 网络游戏——强联网游戏
  16. 用标号法求最短路径matlab,标号法求最短路径问题
  17. html手机9张图片显示,怎么把一张图片分成9张(手机美图秀秀九宫格在哪)
  18. Protobuf-net ProtoGen的使用
  19. ORA-00604: error occurred at recursive SQL level 1 ...——oracle服务空间不足
  20. 激烈运动后吃东西不会胖

热门文章

  1. 阿里财报:菜鸟外部收入占比提升至73%
  2. java 三次贝塞尔曲线算法_转:穿过已知点画平滑曲线(3次贝塞尔曲线)
  3. 中富金石收费29800值得信赖吗?投资者的优质学习渠道
  4. 弹性盒模型(部分布局超好用)
  5. Ubuntu18.04——编译报错解决:file format not recognized; treating as linker script
  6. html 子div是什么意思,html – 为什么子div超出了它们的父div?
  7. 使用 Swift 3 与 Xocde 8 创建条码与二维码扫描应用
  8. 哪款Mac代码编辑器好用?Mac文本代码编辑器推荐—-CudaText for Mac
  9. HDU 2674 N! Again
  10. Algebra:Chapter 0 - 目录