基于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 核心参考教程 内置对象
Oct 13 Javascript
javascript中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
Apr 11 Javascript
jQuery实现当按下回车键时绑定点击事件
Jan 28 Javascript
Javascript 实现复制(Copy)动作方法大全
Jun 20 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
Mar 13 Javascript
jquery带翻页动画的电子杂志代码分享
Aug 21 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
Angular.js中$apply()和$digest()的深入理解
Oct 13 Javascript
webpack构建换肤功能的思路详解
Nov 27 Javascript
ES5新增数组的实现方法
May 12 Javascript
JavaScript交换变量常用4种方法解析
Sep 02 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判断所处服务器操作系统的类型
2013/06/20 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
python 实现兔子生兔子示例
2019/11/21 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
Python如何输出百分比
2020/07/31 Python
应届大学生简历中的自我评价
2014/01/15 职场文书
三万活动总结
2014/04/28 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
机关职员工作检讨书
2014/10/23 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
财务负责人岗位职责
2015/02/03 职场文书
运动会通讯稿300字
2015/07/20 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
mysql优化
2021/04/06 MySQL
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL