基于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 给汉字排序实例代码
Jun 28 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
Jan 15 Javascript
js中精确计算加法和减法示例
Mar 28 Javascript
jquery中EasyUI实现同步树
Mar 01 Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 Javascript
jQuery实现动态显示select下拉列表数据的方法
Feb 05 jQuery
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 Javascript
Vue利用Blob下载原生二进制数组文件
Sep 25 Javascript
JavaScript计算正方形面积
Nov 26 Javascript
javascript实现简易的计算器
Jan 17 Javascript
JavaScript实现与web通信的方法详解
Aug 07 Javascript
jQuery实现电梯导航模块
Dec 22 jQuery
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 socket方式提交的post详解
2008/07/19 PHP
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
Javascript中replace()小结
2015/09/30 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
Python logging模块学习笔记
2014/05/24 Python
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python3实现Web网页图片下载
2016/01/28 Python
python实现视频读取和转化图片
2019/12/10 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
文职个人求职信范文
2013/09/23 职场文书
大学生个人总结的自我评价
2013/10/05 职场文书
怎么写好自荐信
2013/10/30 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
Nebula Graph解决风控业务实践
2022/03/31 MySQL
Win11快速关闭所有广告推荐
2022/04/19 数码科技