vue實(shí)現(xiàn)分頁(yè)加載效果
更新時(shí)間:2019年12月24日 14:09:47 作者:曳貓、
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)分頁(yè)加載效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了vue分頁(yè)加載的具體代碼,供大家參考,具體內(nèi)容如下

HTML
<!-- 商品 頁(yè)數(shù)-->
<div class="pagenavi">
<div class="all-number">
<span>共{{data.length}}個(gè)商品</span>
</div>
<p class="pageArea" data-countpage="1">
<span class="colf22e01 fontT">{{pages}}</span>
/
<span class="page_count fontT">{{total}}</span>
</p>
</div>
<div class="clear-b"></div>
</div>
<!--限制加載數(shù)量-->
<ul class="cata_choose_product clearfix">
<!--渲染數(shù)據(jù) 從那個(gè)下標(biāo)開(kāi)始加載-->
<li v-for="(value,index) in data" v-if="index < 5">
<div class="nosinglemore"></div>
<div class="listbox clearfix">
<div class="listPic">
<router-link target="_blank" to="/goods_detail">
<img :src="value.image" class="fn_img_lazy">
</router-link>
</div>
<div class="listDescript">
<router-link target="_blank" to="/goods_detail" class="text13">{{value.name}}</router-link>
</div>
<div class="cat-shopprice lf">
<p><span>¥{{value.price}}</span></p>
</div>
<div class="cat-addcart lf">
<div class="cart_wrapper">
<router-link target="_blank" to="/goods_detail">查看詳情</router-link>
</div>
</div>
<div class="clear-b"></div>
</div>
</li>
<div class="clear-b"></div>
</ul>
<!--分頁(yè)器-->
<div class="box">
<div class="box_one">
<div @click="shan">上一頁(yè)</div>
<!--動(dòng)態(tài)生成頁(yè)數(shù)標(biāo)簽-->
<div class="box_cen">
<div v-for="(value,index) in total" class="box_foot">
<span @click="yesu" :id="index">{{index+1}}</span>
</div>
</div>
<div @click="xia">下一頁(yè)</div>
</div>
</div>
js
data(){
return{
data:"",//頁(yè)面數(shù)據(jù)
num:0,
pages:1,//當(dāng)前頁(yè)數(shù)
priceQuery:false,//價(jià)格排序判斷
Total:"",//總頁(yè)數(shù)(向上取整)
initial:4,//默認(rèn)加載數(shù)量
total:"",//最終頁(yè)數(shù)
}
},
created(){
//獲取初始數(shù)據(jù)
axios.get("'../../static/mock/data.json").then(res=>{
this.Total = res.data.goods[0].foods.length;
var arr = [];
//限制獲取數(shù)據(jù)量
for(var i=0;i<this.initial;i++){
//加載數(shù)據(jù) 頁(yè)數(shù)+數(shù)量
arr.push(res.data.goods[0].foods[this.num+i]);
}
this.data = arr;
this.total = Math.ceil(this.Total/this.data.length);
}).catch(err=>{
console.log(err);
});
},
methods:{
//下一頁(yè)
xia(){
//頁(yè)數(shù)++
if(this.pages == this.total){
this.pages = this.total;
}else{
this.pages++;
}
//從 加載數(shù)據(jù) 下標(biāo)+數(shù)量
this.num = (this.pages-1)*this.initial;
this.sua();
},
//上一頁(yè)
shan(){
if(this.pages == 1){
this.pages = 1;
}else{
this.pages--;
}
this.num = (this.pages-1)*this.initial;
this.sua();
},
//刷新數(shù)據(jù)
sua(){
axios.get("'../../static/mock/data.json").then(res=>{
var arr = [];
//限制獲取數(shù)據(jù)量
for(var i=0;i<this.initial;i++){
//判斷數(shù)據(jù)是否有undefined,有undefined會(huì)報(bào)錯(cuò)無(wú)法加載
if(res.data.goods[0].foods[this.num+i] != undefined) arr.push(res.data.goods[0].foods[this.num+i]);
}
this.data = arr;
}).catch(err=>{
console.log(err);
});
},
//頁(yè)數(shù)選擇
yesu(e){
// console.log(e.target.id);
this.num = (e.target.id)*4;
this.pages = Number(e.target.id)+1;
this.sua();
},
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue寫(xiě)一個(gè)簡(jiǎn)單的倒計(jì)時(shí)按鈕功能
這篇文章主要介紹了基于Vue寫(xiě)一個(gè)簡(jiǎn)單的倒計(jì)時(shí)按鈕功能,在項(xiàng)目開(kāi)發(fā)的過(guò)程,經(jīng)常會(huì)遇到發(fā)送驗(yàn)證碼,點(diǎn)擊之后有60秒倒計(jì)時(shí)的按鈕,今天小編就給大家分享實(shí)例代碼,需要的朋友參考下吧2018-04-04
公共Hooks封裝useTableData表格數(shù)據(jù)實(shí)例
這篇文章主要為大家介紹了公共Hooks封裝useTableData表格數(shù)據(jù)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
關(guān)于Vue父子組件傳參和回調(diào)函數(shù)的使用
這篇文章主要介紹了關(guān)于Vue父子組件傳參和回調(diào)函數(shù)的使用,我們將某段代碼封裝成一個(gè)組件,而這個(gè)組件又在另一個(gè)組件中引入,而引入該封裝的組件的文件叫做父組件,被引入的組件叫做子組件,需要的朋友可以參考下2023-05-05
vue動(dòng)態(tài)繪制四分之三圓環(huán)圖效果
這篇文章主要介紹了vue動(dòng)態(tài)繪制四分之三圓環(huán)圖效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
vue 動(dòng)態(tài)組件用法示例小結(jié)
這篇文章主要介紹了vue 動(dòng)態(tài)組件用法,結(jié)合實(shí)例形式總結(jié)分析了vue 動(dòng)態(tài)組件基本功能、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03

