基于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 相关文章推荐
iframe异步加载实现点击左边菜单加载右边内容实例讲解
Mar 04 Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
关于Javascript与iframe的那些事儿
Jul 04 Javascript
Javascript核心读书有感之表达式和运算符
Feb 11 Javascript
javascript函数式编程实例分析
Apr 25 Javascript
jQuery简单创建节点的方法
Sep 09 Javascript
JavaScript实现DOM对象选择器
Sep 24 Javascript
基于Javascript实现文件实时加载进度的方法
Oct 12 Javascript
JS滚动到指定位置导航栏固定顶部
Jul 03 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
利用不到200行代码写一款属于你自己的js类库
Jul 08 Javascript
基于canvas实现手写签名(vue)
May 21 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
删除无限级目录与文件代码共享
2006/07/12 PHP
php防止sql注入代码实例
2013/12/18 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
php查询ip所在地的方法
2014/12/05 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
php函数式编程简单示例
2019/08/08 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
Python2实现的LED大数字显示效果示例
2017/09/04 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
微信小程序python用户认证的实现
2019/07/29 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
高校毕业生自我鉴定
2013/10/27 职场文书
大众服装店创业计划书范文
2014/01/01 职场文书
学习雷锋活动总结
2014/04/29 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Mysql 文件配置解析介绍
2022/05/06 MySQL
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers