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和DOM Interfaces来处理HTML
Oct 09 Javascript
为javascript添加String.Format方法
Aug 11 Javascript
由JavaScript技术实现的web小游戏(不含网游)
Jun 12 Javascript
JavaScript和CSS通过expression实现Table居中显示
Jun 28 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
Oct 15 Javascript
jQuery插件开发的五种形态小结
Mar 04 Javascript
javascript简单比较日期大小的方法
Jan 05 Javascript
深入浅析JavaScript函数前面的加号和叹号
Jul 09 Javascript
Three.js学习之文字形状及自定义形状
Aug 01 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
Nov 17 Javascript
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
微信小程序嵌入腾讯视频源过程详解
Aug 08 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
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[01:13]这,就是刀塔
2014/07/16 DOTA
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
python logging日志模块原理及操作解析
2019/10/12 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
利用python画出AUC曲线的实例
2020/02/28 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
python 深度学习中的4种激活函数
2020/09/18 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
什么是View State?
2013/01/27 面试题
与UNIX有关的几个名词
2015/09/17 面试题
初中科学教学反思
2014/01/21 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
市场部经理岗位职责
2015/02/02 职场文书
坎儿井导游词
2015/02/09 职场文书
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers