基于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 相关文章推荐
javascript document.images实例
May 27 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
Jul 29 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
Aug 07 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
JavaScript实现文字跟随鼠标特效
Aug 06 Javascript
jquery删除数组中重复元素
Dec 05 Javascript
探索Javascript中this的奥秘
Dec 11 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
浅谈vue引用静态资源需要注意的事项
Sep 28 Javascript
详解CommonJS和ES6模块循环加载处理的区别
Dec 26 Javascript
Node.js net模块功能及事件监听用法分析
Jan 05 Javascript
vue实现自定义H5视频播放器的方法步骤
Jul 01 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 pack与unpack 摸板字符字符含义
2009/10/29 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
团干部培训方案
2014/06/03 职场文书
学生保证书格式
2015/02/27 职场文书
女方离婚起诉书
2015/05/18 职场文书
教师节座谈会主持词
2015/07/03 职场文书
公司员工培训管理制度
2015/08/04 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis