Vue 短信验证码组件开发详解


Posted in Javascript onFebruary 14, 2017

Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动复杂的单页应用。

摘要:

1、该组件基于Vue 2.1.X版本;

1、 Vue 组件代码如下:

Vue.component('timerBtn',{
  template: '<button v-on:click="run" :disabled="disabled || time > 0">{{ text }}</button>',
  props: {
    second: {
      type: Number,
      default: 60
    },
    disabled: {
      type: Boolean,
      default: false
    }
  },
  data:function () {
   return {
     time: 0
   }
  },
  methods: {
    run: function () {
     this.$emit('run');
    },
    start: function(){
     this.time = this.second;
     this.timer();
    },
    stop: function(){
     this.time = 0;
     this.disabled = false;
    },
    setDisabled: function(val){
     this.disabled = val;
    },
    timer: function () {
      if (this.time > 0) {
        this.time--;
        setTimeout(this.timer, 1000);
      }else{
       this.disabled = false;
      }
    }
  },
  computed: {
    text: function () {
      return this.time > 0 ? this.time + 's 后重获取' : '获取验证码';
    }
  }
});

2、使用方式:

<timer-btn ref="timerbtn" class="btn btn-default" v-on:run="sendCode" 
:disabled="disabled" :second="60"></timer-btn>

disabled 建议不要绑定,我们可以通过调用组件的setDisabled方法来切换按钮可用状态;

second 初始值60s 没特别值可以不绑定;

所以我们可以在HTML页面这样:

<timer-btn ref="timerbtn" class="btn btn-default" v-on:run="sendCode" ></timer-btn>

JS这样:

var vm = new Vue({
  el:'#app',
  methods:{
    sendCode:function(){
      vm.$refs.timerbtn.setDisabled(true); //设置按钮不可用
      hz.ajaxRequest("sys/sendCode?_"+$.now(),function(data){
        if(data.status){
          vm.$refs.timerbtn.start(); //启动倒计时
        }else{
          vm.$refs.timerbtn.stop(); //停止倒计时
        }
      });
    },
  }
});

以上所述是小编给大家介绍的Vue 短信验证码组件开发详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 不间断的图片滚动并可点击
Jan 15 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
Sep 05 Javascript
玩转方法:call和apply
May 08 Javascript
JS使用eval解析JSON的注意事项分析
Nov 14 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
Nov 29 Javascript
老生常谈的跨域处理
Jan 11 Javascript
AngularJS中的缓存使用
Jan 11 Javascript
详解微信小程序开发之城市选择器 城市切换
Jan 17 Javascript
jQuery实现复制到粘贴板功能
Feb 11 Javascript
vue监听滚动事件实现滚动监听
Apr 11 Javascript
javascript兼容性(实例讲解)
Aug 15 Javascript
JS去除字符串中空格的方法
Feb 14 #Javascript
Node.js与Sails redis组件的使用教程
Feb 14 #Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
Feb 14 #Javascript
canvas实现十二星座星空图
Feb 14 #Javascript
JavaScript省市级联下拉菜单实例
Feb 14 #Javascript
jqGrid翻页时数据选中丢失问题的解决办法
Feb 13 #Javascript
jQuery实现用户输入自动完成功能
Feb 13 #Javascript
You might like
2020最新CPU的性能排名
2020/04/02 数码科技
php简单获取文件扩展名的方法
2015/03/24 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
PHP实现百度人脸识别
2019/05/06 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
可以文本显示的公告栏的js代码
2007/03/11 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python绘制彩虹图
2019/12/16 Python
python内置模块collections知识点总结
2019/12/19 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
本科生的职业生涯规划范文
2014/01/09 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers