uniapp中uview组件丰富的Code 验证码输入框的使用方法

目录

基本使用

#自定义提示语

#保持倒计时

API

#Props

#Methods

#Event


基本使用

通过ref获取组件对象,再执行后面的操作,见下方示例。

  1. 通过seconds设置需要倒计的秒数(默认60)
  2. 通过ref调用组件内部的start方法,开始倒计时
  3. 通过监听change事件(从开始到结束之间,每秒触发一次)获得提示的文字,可能值如"获取验证码|12秒后重新获取|重新获取",可以自定义

注意:用户可能在倒计时的过程中点击获取验证码的按钮,组件内部提供了通过ref获取的canGetCode变量,在倒计时 过程中,该值为false,如果为false应该给予提示并不要再次向后端请求验证码,如果为true,则为获取验证码 之前,或者倒计结束之后,可以再次向后端请求验证码。

以下为完整示例,见如下:

<template><view class="wrap"><u-toast ref="uToast"></u-toast><u-code :seconds="seconds" @end="end" @start="start" ref="uCode" @change="codeChange"></u-code><u-button @tap="getCode">{{tips}}</u-button></view>
</template><script>export default {data() {return {tips: '',// refCode: null,seconds: 10,}},onReady() {// 注意这里不能将一个组件赋值给data的一个变量,否则在微信小程序会// 造成循环引用而报错,如果你想这样做,请在非data中定义refCode变量// this.refCode = this.$refs.uCode;},methods: {codeChange(text) {this.tips = text;},getCode() {if(this.$refs.uCode.canGetCode) {// 模拟向后端请求验证码uni.showLoading({title: '正在获取验证码'})setTimeout(() => {uni.hideLoading();// 这里此提示会被this.start()方法中的提示覆盖uni.$u.toast('验证码已发送');// 通知验证码组件内部开始倒计时this.$refs.uCode.start();}, 2000);} else {uni.$u.toast('倒计时结束后再发送');}},end() {uni.$u.toast('倒计时结束');},start() {uni.$u.toast('倒计时开始');}}}
</script><style lang="scss">.wrap {padding: 24rpx;}
</style>

#自定义提示语

组件内部有内置的提示语,如获取验证码前的提示语为"获取验证码",用户可以通过参数配置自定义的提示:

  • 获取前,参数为start-text,默认值为"获取验证码"
  • 倒计时期间,参数为change-text,默认为"X秒重新获取",这里的"x"(大小写均可),将会被倒计的秒数替代
  • 倒计时结束,参数为end-text,默认值为"重新获取"

#保持倒计时

一般情况下,在H5刷新浏览器,或者各端返回再进入时,倒计时会消失,导致用户可以再次尝试获取验证码,虽然后端还会对此进行进一步的判断。
对于这种情况,uView给出了一个keep-running参数(默认为false),为true的时候,即使刷新浏览器,或者返回上一个页面, 倒计时依然会继续(如果还在倒计时间内的话)。

注意: 如果您的一个页面或者多个页面同时使用了多个此组件,为了防止多个组件之间,保存在本地的多个继续倒计时的变量之间互相干扰,可以配置 各个组件的unique-key为一个不重复的字符串,以作区分:

/* A.vue */
<u-verification-code unique-key="page-a"></u-verification-code>/* B.vue */
<u-verification-code unique-key="page-b"></u-verification-code>

API

#Props

参数说明类型默认值可选值
seconds倒计时所需的秒数Number | String60-
startText开始前的提示语,见上方说明String获取验证码-
changeText倒计时期间的提示语,必须带有字母"x",见上方说明StringX秒重新获取-
endText倒计结束的提示语,见上方说明String重新获取-
keepRunning是否在H5刷新或各端返回再进入时继续倒计时Booleanfalsetrue
uniqueKey多个组件之间继续倒计时的区分key,见上方说明String--

#Methods

需要通过ref获取验证码组件才能调用,见上方"基本使用"说明

名称说明
start开始倒计时
reset结束当前正在进行中的倒计时,设置组件为可以重新获取验证码的状态

#Event

事件名说明回调参数版本
change倒计时期间,每秒触发一次text: 当前剩余多少秒的状态,见上方说明-
start开始倒计时触发--
end结束倒计时触发--

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/316573.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub Copilot 最佳免费平替:阿里通义灵码

之前分享了不少关于 GitHub Copilot 的文章&#xff0c;不少粉丝都评论让我试试阿里的通义灵码&#xff0c;这让我对通义灵码有了不少的兴趣。 今天&#xff0c;阿七就带大家了解一下阿里的通义灵码&#xff0c;我们按照之前 GitHub Copilot 的顺序分享通义灵码在相同场景下的…

Linux系统文件IO

Linux系统文件IO 每个系统都有自己的专属函数&#xff0c;我们习惯称其为系统函数。系统函数并不是内核函数&#xff0c;因为内核函数是不允许用户使用的&#xff0c;系统函数就充当了二者之间的桥梁&#xff0c;这样用户就可以间接的完成某些内核操作了。 在前面介绍了文件描…

Windows下使用DOS命令上传文件到服务器

前言 本文将分享在windows环境下&#xff0c;如何编写DOS脚本来上传文件到远程服务器 使用工具 这里我们需要下载&#xff1a;PuTTY&#xff08;下载地址&#xff09; PuTTY是由Simon Tatham开发的免费、开源的SSH和Telnet客户端。它允许用户通过命令行使用SSH或Telnet协议连…

部署上传漏洞的靶场环境upload-labs

1、工具介绍 upload-labs是一个使用php语言编写的&#xff0c;专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关&#xff0c;每一关都包含着不同上传方式。 upload-labs靶场开源地址&#xff1a;&#xff1a;https://…

automatic matting 抠图算法汇总

电商图抠图算法&#xff0c;主要还是关注商品图抠图&#xff0c;内部也有自研的抠图算法&#xff0c;下面主要关注开源抠图算法。一般来说关注trimap-free的方法&#xff0c;即一步抠图&#xff0c;业务上也是trimap-free更加友好&#xff0c;当然业务流上可以先计算trimap&…

Docker 安装Mysql

目录 Docker Mysql安装 ✨安装和配置mysql ✨远程连接mysql远程连接 MySQL 是世界上最流行的开源数据库。根据 DB-Engines的调查数据&#xff0c;MySQL 是第二受欢迎的数据库&#xff0c;仅次于 Oracle 数据库。MySQL在过去由于性能高、成本低、可靠性好&#xff0c;已经成…

一、HTML5简介

一、简介 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器来解析。 <!…

SpringBoot: 通过MyBatis访问ClickHouse

一、ClickHouse中建表&#xff0c;添加数据 二、SpringBoot项目添加mybatis、clickhouse、druid相关依赖 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version></dependency>…

天线的相关概念

天线&#xff1a;发射和接收电磁波的装置 1. 辐射强度 发射&#xff08;接收&#xff09;能量在空间中的角分布&#xff08;单位立体角中的功率&#xff09;。 2. 辐射功率 通过所有方向辐射出去的总功率。 3. 辐射电阻 对峰值电流&#xff0c;辐射电阻满足 4. 方向性 辐射…

Spark一:Spark介绍、技术栈与运行模式

一、Spark简介 Spark官网 https://spark.apache.org/ 1.1 Spark是什么 Spark是一种通用的大数据计算框架&#xff0c;是基于RDD(弹性分布式数据集)的一种计算模型。 是一种由 Scala 语言开发的快速、通用、可扩展的大数据分析引擎。 1.2 Spark作用 中间结果输出 Spark的Jo…

Android--Jetpack--WorkManager详解

2024已经到来&#xff0c;愿你安睡时&#xff0c;山河入梦。愿你醒来时&#xff0c;满目春风。愿你欢笑时&#xff0c;始终如一。愿你行进时&#xff0c;前程似锦&#xff0c;坦荡从容。 编程语言的未来&#xff1f; 目录 一&#xff0c;定义 二&#xff0c;特点 三&#xff0c…

Kubernetes 集群搭建(新人白嫖青云服务器) 一个master节点+两个工作节点

文章目录 1&#xff0c; 购买青云服务器&#xff08;白嫖&#xff09;2&#xff0c;创建 VPC3&#xff0c;连接测试4&#xff0c;安装 docker4.1&#xff0c;安装docker 20.10.74.2&#xff0c;配置加速镜像 5&#xff0c;安装 Kubernetes5.1&#xff0c;要求5.2&#xff0c;设…