用canvas显示验证码

最近作了一个小需求,就是点击删除按钮,弹出提示弹框让你输入验证码确认删除。vue

那么怎么显示从后台获取的验证码供用户输入呢?我在理解需求时还觉得是后台直接把验证码发到用户的手机上 而后让其输入,其实否则,我理解错了,应该用canvas把验证码画出来。vuex

理解需求以后我扒着有验证码的网址看,开始canvas画图之旅。canvas

技术栈: quasar(基于vue的一种框架) / canvas框架

  • 点击删除按钮,触发弹框弹出

  • 弹框为何会弹出呢? 由于点击删除按钮,触发handleAddDialogOpened事件,使得data里面的addDialogOpened由false变成true,弹框就由以前的不显示变成显示啦。dom

  • 如图代码是弹框代码:其中canvas标签上的ref是多余的,抱歉呐,忘记删掉了函数

  • data里面定义的数据:定义canvas画布的宽高
  • verifyCode_绑定用户输入input框的验证码
  • computed计算属性里面mapState映射verifyCode数据,mapState是辅助函数,用于帮助咱们简化生成计算属性,不懂的能够扒着vuex的官网瞅瞅
  • mapActions也是辅助函数,用于将组件的方法映射为store.dispatch
  • getVerifyCode 就是向后台获取验证的请求方法
  • canvasclick方法用于 当用户辨认不清验证码,或者输入错误从新输入时,点击换一个便可更新验证码(此时要从新从后台获取验证码) 后台小哥哥不打烊呐~~~
  • 核心代码:drawPic()方法就是画验证码的核心方法
    • 1 获取画布标签 使用getElementById原生获取dom
    • 2 使用.getContext('2d')准备画布 .textBaseline 定义画布描绘的基线
    • 3 绘制背景
    • 4 绘制验证码
    • 5 绘制干扰视觉的线和点

  • drawText()绘制验证码的方法
  • drawLine()绘制干扰线的方法
  • drawDot()绘制干扰点的方法
  • 定义弹框弹出的方法以及删除的方法,回归需求,到此这个需求就完成了 能够和后台联调,没啥问题就可提交代码啦

总结:

a. 遇到没有作过的需求,要去看看别人怎么作的,目前尚未难到要你本身创新,没有任何类比的代码spa

b. 善于使用debugger调试代码,看看本身代码那里出了问题,有bug不要慌,喝口水,去debugger打断点深刻理解代码执行逻辑,效率解决debug

c. 做为社畜大军的一员,要自律,要输出,要锻炼,有时间还要看看代码大全,地铁上撸撸MDN文档,扎实js, 期待那个你想成为的你, 共勉3d

相关文章
相关标签/搜索