基于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 相关文章推荐
js 实现打印网页中定义的部分内容的代码
Apr 01 Javascript
Javascript根据指定下标或对象删除数组元素
Dec 21 Javascript
JavaScript实现点击单元格改变背景色的方法
Feb 12 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
Nov 01 Javascript
bootstrap使用validate实现简单校验功能
Dec 02 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
Feb 10 Javascript
浅谈Node模块系统及其模式
Nov 17 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
Jan 22 jQuery
Vue侦测相关api的实现方法
May 22 Javascript
使用js实现一个简单的滚动条过程解析
Sep 10 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
pandas Dataframe行列读取的实例
2018/06/08 Python
python的常用模块之collections模块详解
2018/12/06 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
python操作kafka实践的示例代码
2019/06/19 Python
python 等差数列末项计算方式
2020/05/03 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
幼儿园校车司机的岗位职责
2014/01/30 职场文书
青春励志演讲稿
2014/04/29 职场文书
七夕情人节促销方案
2014/06/07 职场文书
领导班子整改措施
2014/10/24 职场文书
旷课检讨书范文
2015/01/27 职场文书
python实现图片批量压缩
2021/04/24 Python