基于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获取location.href的参数实例代码
Aug 02 Javascript
replace()方法查找字符使用示例
Oct 28 Javascript
Extjs4中Form的使用之本地hiddenfield
Nov 26 Javascript
JS产生随机数的用法小结
Dec 10 Javascript
jQuery纵向导航菜单效果实现方法
Dec 19 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
Apr 12 Javascript
基于JavaScript实现类名的添加与移除
Apr 23 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
JS验证码实现代码
Sep 14 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
layui 给数据表格加序号的方法
Aug 20 Javascript
vue+vant实现商品列表批量倒计时功能
Jan 13 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
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
javascript实现下雨效果
2017/03/27 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
win与linux系统中python requests 安装
2016/12/04 Python
使用Python绘制图表大全总结
2017/02/11 Python
Python内存读写操作示例
2018/07/18 Python
Python 函数返回值的示例代码
2019/03/11 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
python mock测试的示例
2020/10/19 Python
美国性感女装网站:bebe
2017/03/04 全球购物
酒店仓管员岗位职责
2014/04/28 职场文书
企业愿景口号
2015/12/25 职场文书
PHP策略模式写法
2021/04/01 PHP
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python