vue 发送验证码+倒计时组件

VUE发送短信倒计时组件代码 组件源码 0">{{ text }} export default{ props: {         second: {             type: Number,             default: 60         }     },     data:function () {      return {         time 阅读详情

效果图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

组件代码

<template>
  <el-button
    @click="getCodeFlag && getSecuntyCode()"
    :loading="getCodeLoading"
    >{{ codeText }}</el-button
  >
</template>
<script>
import { sendCode } from '@/api/user.js'
export default {
  name: 'SecurityCode',
  components: {},
  props: {
    email: {
      type: String,
      require: true
    }
  },
  data () {
    return {
      getCodeLoading: false,
      time: 60, // 倒计时初始值
      codeText: '获取验证码',
      getCodeFlag: true
    }
  },
  computed: {},
  watch: {},
  created () {},
  mounted () {},
  methods: {
    async getSecuntyCode () {
      this.getCodeLoading = true
      this.getCodeFlag = false
      if (!this.isValid(this.email)) {
        this.getCodeLoading = false
        this.getCodeFlag = true
        return this.$message({
          message: '邮箱格式填写正确了,再获取验证码哦!',
          type: 'warning'
        })
      }
      try {
        await sendCode({ email: this.email, type: 0 })
        this.$message.success('验证码已发送!')
      } catch (error) {
        this.$message.error('获取验证码失败!')
      }
      this.getCodeLoading = false
      this.countDown()
    },
    countDown () {
      const interval = window.setInterval(() => {
        this.codeText =
          (this.time < 10 ? '0' + this.time : this.time) + '秒后重新发送'
        --this.time
        if (this.time < 0) {
          this.time = 60
          this.codeText = '重新发送'
          this.getCodeFlag = true
          window.clearInterval(interval)
        }
      }, 1000)
    },
    // 判断email的合法性
    isValid (value) {
      const phoneReg =
        /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
      if (phoneReg.test(value)) {
        return true
      } else {
        return false
      }
    }
  }
}
</script>
<style scoped lang="less"></style>

使用步骤
引用

import SecurityCode from '@/components/security-code'

注册组件

components: {
    SecurityCode
  }

使用
要传入email(因为要校验其是否合法 再先服务器发起请求)

<security-code
            :email="createQuickForm.email"
            ></security-code
          >
VS2019手动添加bits/stdc++.h全指南(附解决‘无法打开源文件‘错误) 本文详细介绍了在Visual Studio 2019中手动配置C++万能头文件bits/stdc++.h的完整方法,解决常见的'无法打开源文件'错误。通过分析GCC与MSVC编译器生态差异,提供了纯手动创建和MinGW移植两种可靠方案,并给出详细的步骤、常见错误排查及最佳实践建议,帮助开发者高效配置竞赛开发环境。 阅读详情

相关推荐

OsgEarth实战:飞机模型动态轨迹与雷达扫描效果实现详解

本文详细介绍了如何使用OsgEarth实现飞机模型动态轨迹与雷达扫描效果。通过实战案例,讲解了模型加载、路径规划、动态轨迹绘制、飞行姿态计算以及雷达扫描效果的实现方法,并提供了性能优化技巧,帮助开发者高效完成三维可视化项目开发。

weixin_29214199的博客 303

封装组件——全局倒计时loading框

封装组件——全局倒计时loading框前言需求实现组件内容封装组件实例注册及使用注册使用效果 前言 对于之前封装的loading组件想要进行一个优化,然后想到可以不用在页面中添加template引入组件模板,而是直接将组件挂载到vue实例上,使用this原型调用组件并传值 需求 需要一个全局倒计时loading框,倒计时可自定义,提示信息可自定义 实现 组件内容 loading.vue <t...

玛已的小空间 1056

从NASA官网到分析图:MOD09A1地表反射率数据的完整处理流程(含QC筛选)

本文详细介绍了MOD09A1地表反射率数据的完整处理流程,从NASA官网数据下载到QC筛选,再到NDVI图生成。特别强调了质量控制(QC)信息在筛选可靠像元中的关键作用,帮助研究人员获取高质量遥感数据。

weixin_42542669的博客 111

vue 验证码倒计时

这样就可以实现一个基本的验证码倒计时功能。注意,在实际情况下还需要对获取验证码的逻辑进行处理,例如发送验证码请求、验证手机号码等。

wgq2020的博客 1245

Win10局域网内文件共享+远程桌面控制保姆级教程(含常见问题解决)

本文提供Win10局域网内文件共享和远程桌面控制的详细教程,包括环境检查、共享文件夹设置、远程桌面连接步骤及常见问题解决方案。通过内置功能实现高效办公协作,提升多设备协同工作效率,特别适合需要频繁传输文件或远程控制场景的专业人士。

rose2的博客 777

基于STM32F334C8T6的四开关Buck-Boost双向DC-DC电源设计与实现(附源码、仿真与计算书)

本文详细介绍了基于STM32F334C8T6的四开关Buck-Boost双向DC-DC电源设计方案。该设计利用STM32的高分辨率定时器(HRTIM)实现精确PWM控制,支持Buck、Boost和Buck-Boost三种工作模式自动切换,具备双向能量流动能力。通过PSIM仿真和Mathcad计算书进行参数优化,实测效率达95.8%,适用于新能源系统和电池管理等场景。

www00的博客 525

047:vue加载循环倒计时 示例

vue项目中,有很多时候我们需要做倒计时相关的应用。如果是多个倒计时,需要做一个循环,下面这个示例是如何显示倒计时的方法。

大剑师兰特的GIS世界 898

MacBook 本地化部署 Dify 指南

dify 怎么安装部署 有哪些坑 !

weixin_44542598的博客 1522

vue实现验证码倒计时——js定时函数的应用

setTimeout()、setInterval()定时函数

kumababe的博客 383

C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口)

C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口) 之前写了一篇关于C++调用海康相机SDK采集图像的文章,有很多人私下发送消息咨询了一些问题,由于工作繁忙,只答复了一部分问题,今天抽出时间从头梳理了一下大家提出的问题,把我能够回答的问题都解答一次。上一次的程序只是简单的实现了图像的采集,没有使用到线程,今天把程序重新做出调整,把线程和多态加进去。文章最后有项目的下载地址。 我使用的是QT Creator这个IDE,版本信息如下: 我把相机采集的图像转换为openC

大樱桃的博客 1万+

示波器学习(一):示波器的作用、类型和基本结构

示波器的作用、使用场景;示波器的类型和基本结构介绍

qq_41300605的博客 9140

vue中通过定时器设置倒计时,5秒倒计时

前言:有时候,在项目中,我们经常需要设置简单的倒计时功能,这个可以通过定时器来实现。 一、设置div显示倒计时数字 <div class="countCircle"> <span>{{countdown}}</span> </div> 二、JS中设置方法 export default{ data(){ countdown:'5', timer: null, }, methods:{

qq_26780317的博客 1万+

强化学习:从经典强化学习理解强化学习

1. 背景介绍 强化学习(Reinforcement Learning,RL)作为机器学习领域的重要分支,近年来取得了长足的进步。其核心思想是让智能体通过与环境的交互学习最优策略,从而最大化累积奖励。不同于监督学习和非监督学习,强化学习无需预先标注数据,而是通过试错的方式逐步学习,具有更强的适应性和泛化能力。

AI架构师小马 1802

vue发送验证码时间倒计时组件

注册组件 先导入,再使用 <template> <span class="count_info btn btn-default" :class="{'btn-info': !code_sended}"> <span v-show="show" @click="getCode">获取验证码</span> ...

我是张先生 3630

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

vue 发送验证码倒计时公共组件

前言 基本上做的每个项目都会有发送验证码的需求,之前一直是遇到一次写一次方法,这次做这个需求的时候正好把这个功能封装为组件,以方便后期使用。 这里需要注意的是:\color{red}{这里需要注意的是:}这里需要注意的是: 1,了解vue–props属性的都知道,我在props传参数的时候默认值是在你什么参数都没有传入的时候生效 2,所以这个时候需要全部都从父组件传入,也是比较灵活的做法 3,如果真的需要使用灵活的使用默认值,那就在公共得组件内使用computed计算属性,这样就可以使用默认值了,也就是下面

郝峰vip的博客 453

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

vue组件中校验手机号、发送验证码倒计时、密码明文切换、短信验证登录

1.动态添加一个类名 2.使用vue的计算属性来判断什么时候可以使用 <template> <section class="loginContainer"> <div class="loginInner"> <div class="login_header"> <h2 class="login_logo">硅谷外卖</h2> <div class="login_head

weixin_43837268的博客 819

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

封装60秒倒计时vue组件

2、子组件sendTime.vue。1、父组件home.vue。

weixin_46003296的博客 439

vue获取(短信or邮箱)验证码组件

&lt;template&gt;     &lt;button          :style="config.cssSet?config.cssSet:''"          class="common-getCodeBtn"          @click="togetCode"         :disabled="isGetting"         &gt;{{ message?mes

weixin_41421227的博客 2361

在vue项目中做一个发送验证码业务

在这里用了vueuse中的useIntervalFn方法官方文档 发送验证码,需要校验手机号,和判断是否60秒内,方可发送。组件销毁时候清除定时器。 //先引入 import { useIntervalFn } from '@vueuse/core' <span @click="send()" class="code"> {{timer===0?'发送验证码':`${time}秒后发送`}} </span> // 倒计时 const timer = ref(0) // 发

haodanzj的博客 596

登录注册中的验证码倒计时

&lt;span v-if="sendDisabled"&gt;{{time+'秒后获取'}}&lt;/span&gt; &lt;span v-if="!sendDisabled" @click="sends"&gt;获取验证码&lt;/span&gt; data{  return {       time: 60, // 发送验证码倒计时       sendMsgDi

qq_33040483的博客 422

使用Vue纯前端实现发送短信验证码并实现倒计时

你好,我是小白Coding日志,一个热爱技术的程序员。在这里,我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客,一起在技术的世界里探索前行吧!在实际的应用开发中,涉及用户登录验证、密码重置等场景时,通常需要前端实现发送短信验证码的功能,以提升用户体验和安全性。这个过程涉及与后端的协同配合,通过调用短信网关或短信服务接口,将验证码发送至用户手机。以下是一个简单的前端实现,演示了如何在用户点击发送验证码按钮时触发短信验证码的发送,并开始一个倒计时。

技小白的博客 3024

vue + elementui 表单居中对齐,验证码倒计时

1、表单居中对齐: <fieldset> <legend >个人信息</legend> <!-- 姓名 --> <el-form-item label="姓名:" prop="apply_person_name" size = 'small' > <el-input v-model="form.apply_person_name" placeholder="请输入

pin-csdn的博客 8159

关于vue实现验证码倒计时功能

template <div class="keyCode"> <el-input key="registerKeyCode" placeholder="请输入验证码" v-model="keyCode"> <i slot="prefix" class="el-input__icon iconfont icon-anquan"></i> </e

m0_46977781的博客 280

vue如何封装一个组件,验证码倒计时组件

vue如何封装一个组件,验证码倒计时组件 //注意自定义组件中的组件名不能为大写多个单词用-连接 // 定义一个名为 item-time 的新组件 //服务项目列表 Vue.component('item-time', { props: ['maxtotaltime','settime'], template: ` <div class="btn" @click="getVerificationCode()" style="position: absolute;rig

weixin_41970780的博客 523

vue发送验证码倒计时

效果 <el-form-item prop="verificationCode"> <el-input type="text" v-model="ruleForm.verificationCode" autocomplete="off" placeholder="验证码" class="verificationCode"></el-input> <span class="getCode" @click="getCode()" v-show="sho

weixin_38673922的博客 552

Vue+vant 实现--发送验证码实现倒计时的功能

vue,vant,发送验证码实现倒计时,倒计时功能实现,vue实现倒计时,vant中countDown的用法,countDown,countDown用法

你喜欢大熊猫嘛 1584
上一篇: Vue2中使用vue-croper插件实现图片上传裁剪--超详细
下一篇: vue3+ts 实现图标控制音乐播放
Liu_简爱
博客等级 码龄7年 16粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值