基于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 相关文章推荐
jQuery 性能优化指南(2)
May 21 Javascript
Js操作树节点自动折叠展开的几种方法
May 05 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
Oct 23 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
用jQuery实现圆点图片轮播效果
Mar 19 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
Oct 20 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
Oct 22 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
Oct 23 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
Jul 30 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
Mar 03 Javascript
详解ES6 CLASS在微信小程序中的应用实例
Apr 24 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP聊天室技术
2006/10/09 PHP
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
php 无限级缓存的类的扩展
2009/03/16 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python 创建子进程模块subprocess详解
2015/04/08 Python
python 调用HBase的简单实例
2016/12/18 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
Python中函数的返回值示例浅析
2019/08/28 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
教师应聘个人求职信
2013/12/10 职场文书
CAD制图设计师自荐信
2014/01/29 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
大学生实习推荐信
2015/03/27 职场文书
航班延误投诉信
2015/07/02 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android