先說一下產(chǎn)品需求,就是有幾個tab欄,每個tab欄對應(yīng)的ajax請求不一樣,內(nèi)容區(qū)域一樣,內(nèi)容為實時刷新數(shù)據(jù),每3s需要重新請求,返回的數(shù)據(jù)在內(nèi)容區(qū)域展示,每點擊一次tab欄需停止其他tab欄ajax請求,防止阻塞,首次加載頁面的時候又不能5個ajax同時請求,只需要請求第一個就好
創(chuàng)新互聯(lián)公司提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計,成都品牌網(wǎng)站建設(shè),廣告投放平臺等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10余年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破上千家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.
也沒有必要建立5個區(qū)域,控制顯示隱藏,浪費性能,業(yè)務(wù)代碼就不貼了,把大概原理的代碼貼上來

先是用jq實現(xiàn)了一版
<!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的方法不一樣,提前用一個數(shù)組把方法保存起來
clearInterval(this.time1)
this.time1=setInterval(this.arr[index],1000)
//以下是調(diào)用同一種方法的時候可以不需要設(shè)置數(shù)組
this.num = 0
clearInterval(this.time2)
this.time2 = this.fun(index)
},
fun:function(index){
var _this=this;
return setInterval(function(){
//寫個隨機數(shù)顯示在頁面,具體業(yè)務(wù)需求應(yīng)該是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實現(xiàn)tab欄切換內(nèi)容不斷實時刷新數(shù)據(jù)功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!
網(wǎng)站名稱:基于Vue實現(xiàn)tab欄切換內(nèi)容不斷實時刷新數(shù)據(jù)功能
標題路徑:http://www.chinadenli.net/article28/pisecp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站排名、、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)