基于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(JS)替换节点实现思路介绍
Apr 17 Javascript
JavaScript制作简易计算器(不用eval)
Feb 05 Javascript
Angular开发者指南之入门介绍
Mar 05 Javascript
javascript遍历json对象的key和任意js对象属性实例
Mar 09 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
jQuery实现动态删除LI的方法
May 30 jQuery
详解react-router如何实现按需加载
Jun 15 Javascript
Node.js静态服务器的实现方法
Feb 28 Javascript
React 无状态组件(Stateless Component) 与高阶组件
Aug 14 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
Sep 25 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
Jan 29 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
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
Python3 处理JSON的实例详解
2017/10/29 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
Python中return函数返回值实例用法
2020/11/19 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
自荐信封面
2013/12/04 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
优秀团员自我评价
2015/03/10 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
python基础详解之if循环语句
2021/04/24 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python