基于Vue实现tab栏切换内容不断实时刷新数据功能


Posted in Javascript onApril 13, 2017

先说一下产品需求,就是有几个tab栏,每个tab栏对应的ajax请求不一样,内容区域一样,内容为实时刷新数据,每3s需要重新请求,返回的数据在内容区域展示,每点击一次tab栏需停止其他tab栏ajax请求,防止阻塞,首次加载页面的时候又不能5个ajax同时请求,只需要请求第一个就好

也没有必要建立5个区域,控制显示隐藏,浪费性能,业务代码就不贴了,把大概原理的代码贴上来

基于Vue实现tab栏切换内容不断实时刷新数据功能

先是用jq实现了一版

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <meta name="renderer" content="webkit">
 <title>Title</title>
 <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
</head>
<body>
<div>
 <ul>
 <li>click</li>
 <li>click</li>
 <li>click</li>
 <li>click</li>
 <li>click</li>
 </ul>
</div>
<script>
 var arr=[
 function(){console.log(0);},
 function(){console.log(1);},
 function(){console.log(2);},
 function(){console.log(3);},
 function(){console.log(4);}
 ];
 var seti=setInterval(arr[0],1000)
 $('li').click(function(){
 clearInterval(seti)
 seti=setInterval(arr[$(this).index()],1000)
 })
</script>
</body>
</html>

再看vue版

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 <meta name="renderer" content="webkit">
 <title>Title</title>
 <script src="https://unpkg.com/vue@2.2.6/dist/vue.min.js"></script>
</head>
<body>
<div id="vm">
 <button @click="tab(0)">click0</button>
 <button @click="tab(1)">click1</button>
 <button @click="tab(2)">click2</button>
 <button @click="tab(3)">click3</button>
 <button @click="tab(4)">click4</button>
 <div>
 <p>{{show}}</p>
 </div>
</div>
<script>
 var vm1 = new Vue({
 el: '#vm',
 data: {
  arr:[
  function(){console.log(0);},
  function(){console.log(1);},
  function(){console.log(2);},
  function(){console.log(3);},
  function(){console.log(4);}
  ],
  time1:'',
  time2:'',
  show:'',
  num:0,
 },
 methods: {
  tab: function(index){
  //如果每个tab的方法不一样,提前用一个数组把方法保存起来
  clearInterval(this.time1)
  this.time1=setInterval(this.arr[index],1000)
  //以下是调用同一种方法的时候可以不需要设置数组
  this.num = 0
  clearInterval(this.time2)
  this.time2 = this.fun(index)
  },
  fun:function(index){
  var _this=this;
  return setInterval(function(){
   //写个随机数显示在页面,具体业务需求应该是ajax请求
   var random=String(parseInt(Math.random()*100000000000))
   //字符一个一个显示在页面上
   _this.show=index+random.substring(0,_this.num++);
  },300)
  }
 },
 mounted:function(){
  this.time1=setInterval(this.arr[0],1000)
 }
 });
</script>
</body>
</html>

以上所述是小编给大家介绍的基于Vue实现tab栏切换内容不断实时刷新数据功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
麻雀虽小五脏俱全 Dojo自定义控件应用
Sep 04 Javascript
javascript设计模式 接口介绍
Jul 24 Javascript
js中substring和substr的详细介绍与用法
Aug 29 Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 Javascript
Javascript之BOM(window对象)详解
May 25 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
老生常谈 关于JavaScript的类的继承
Jun 24 Javascript
Vue插件写、用详解(附demo)
Mar 20 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
JavaScript中立即执行函数实例详解
Nov 04 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
JavaScript数据结构之二叉树的计数算法示例
Apr 13 #Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 #Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 #Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 #jQuery
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 #Javascript
vue如何引用其他组件(css和js)
Apr 13 #Javascript
JavaScript数据结构之二叉树的遍历算法示例
Apr 13 #Javascript
You might like
把PHP安装为Apache DSO
2006/10/09 PHP
PHP操作数组相关函数
2011/02/03 PHP
php中批量替换文件名的实现代码
2011/07/20 PHP
php上传文件常见问题总结
2015/02/03 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
JS求平均值的小例子
2013/11/29 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
从零学Python之hello world
2014/05/21 Python
Python计算已经过去多少个周末的方法
2015/07/25 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
使用python生成目录树
2018/03/29 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
Django CBV类的用法详解
2019/07/26 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
初二政治教学反思
2014/01/12 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
班长自荐书范文
2014/02/11 职场文书
关于职业道德的心得体会
2016/01/18 职场文书