vue 验证码的几种方式

本文介绍了在Vue中实现验证码的两种方法:1. 封装组件,从父组件和子组件的角度详细阐述;2. 通过封装组件,再次讨论父组件与子组件的交互。文章覆盖了验证码生成与验证的全过程。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1.
 <span
      @click="randyzm()"
      style="display: inline-block;text-align: center; width: 90px;font-size: 20px; height: 32px; line-height:32px; color: #2b3b4b;background-color: #1ea7fe"
    >{
  {code}}</span>
	data(){
   
		return{
   
			code:''
			}
	}
	// 方法
   randyzm() {
   
      //生成随机验证码
      let code = ''
      let coden = ''
      var codeLength = 4 //验证码的长度
      var random = new Array(
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        'A',
        'B',
        'C',
        'D',
        'E',
        'F',
        'G',
        'H',
        'I',
        'J',
        'K',
        'L',
        'M',
        'N',
        'O',
        'P',
        'Q',
        'R',
        'S',
        'T',
        'U',
        'V',
        'W',
        'X',
        'Y',
        'Z',
        'a',
        'b',
        'c',
        'd',
        'e',
        'f',
        'g',
        'h',
        'i',
        'j',
        'k',
        'l',
        'm',
        'n',
        'o',
        'p',
        'q',
        'r',
        's',
        't',
        'u',
        'v',
        'w',
        'x',
        'y',
        'z'
      ) //随机数
      for (var i = 0; i < codeLength; i++) {
   
        //循环操作
        var index = Math.floor(Math.random() * 62) //取得随机数的索引(0~61)
        code += random[index] //根据索引取得随机数加到code上
        coden += random[index] //根据索引取得随机数加到code上
      }
      this.code = coden //把code值赋给验证码
      console.log(this.code)
    },

在这里插入图片描述

2. 封装组建
父组建
<template>
  <div class="home">
    <vue-image @getIdentifyCode="getIdentifyCodes" />
  </div>
</template>
<script>
import VueImage from '../../components/echarts/vueImageVerify.vue'
components:{
     
	VueImage
},
methods:{
     
 getIdentifyCodes(value) {
     
	      console.log('------', value)
	      // 判断验证码输入是否有误 和输入的文本框
	      // if (this.verify.toLowerCase() != value.toLowerCase()) {
     
	      // Toast.fail('验证码有误')
	      // return
	      // }
 }
}
</script>
子组建
 <template>
  <div class="div" @click="createdCode">
    <canvas id="div" :width="contentWidth" :height="contentHeight"></canvas>
  </div>
</template>
   <script>
import Vue from 'vue'
export default Vue.extend({
     
  props: {
     
    fontSizeMin: {
     
      type: Number,
      default: 25
    },
    fontSizeMax: {
     
      type: Number,
      default: 30
    },
    backgroundColorMin: {
     
      type: Number,
      default: 255
    },
    backgroundColorMax: {
     
      type: Number,
      default: 255
    },
    colorMin: {
     
      type: Number,
      default: 0
    },
    colorMax: {
     
      type: Number,
      default: 160
    },
    lineColorMin: {
     
      type: Number,
      default: 100
    },
    lineColorMax: {
     
      type: Number,
      default: 255
    },
    dotColorMin: {
     
      type: Number,
      default: 0
    },
    dotColorMax: {
     
      type: Number,
      default: 255
    },
    contentWidth: {
     
      type: Number,
      default: 120
    },
    contentHeight: {
     
      type:</
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值