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 相关文章推荐
js+css在交互上的应用
Jul 18 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
Feb 27 Javascript
js 与 php 通过json数据进行通讯示例
Mar 26 Javascript
js限制checkbox选中个数以限制六个为例
Jul 15 Javascript
JQuery+CSS实现图片上放置按钮的方法
May 29 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
JavaScript中document.referrer的用法详解
Jul 04 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
Vue框架之goods组件开发详解
Jan 25 Javascript
bootstrap下拉框动态赋值方法
Aug 10 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
关于AngularJS中几种Providers的区别总结
May 17 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
PHP新手上路(九)
2006/10/09 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP新手入门学习方法
2011/05/08 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
js控制div及网页相关属性的代码
2009/12/19 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
工商企业管理实习自我鉴定
2013/12/04 职场文书
绿色学校实施方案
2014/03/31 职场文书
接待员岗位职责
2015/02/13 职场文书
python lambda 表达式形式分析
2022/04/03 Python