vue實(shí)現(xiàn)分頁加載效果
本文實(shí)例為大家分享了vue分頁加載的具體代碼,供大家參考,具體內(nèi)容如下
HTML
<!-- 商品 頁數(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)開始加載--> <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> <!--分頁器--> <div class="box"> <div class="box_one"> <div @click="shan">上一頁</div> <!--動(dòng)態(tài)生成頁數(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">下一頁</div> </div> </div>
js
data(){ return{ data:"",//頁面數(shù)據(jù) num:0, pages:1,//當(dāng)前頁數(shù) priceQuery:false,//價(jià)格排序判斷 Total:"",//總頁數(shù)(向上取整) initial:4,//默認(rèn)加載數(shù)量 total:"",//最終頁數(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ù) 頁數(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:{ //下一頁 xia(){ //頁數(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(); }, //上一頁 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ò)無法加載 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); }); }, //頁數(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)文章
rem實(shí)現(xiàn)響應(yīng)式布局的思路詳解
這篇文章主要為大家介紹了rem實(shí)現(xiàn)響應(yīng)式布局的思路詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03淺析Vue為什么需要同時(shí)使用Ref和Reactive
這篇文章主要想來和大家一起探討一下Vue為什么需要同時(shí)使用Ref和Reactive,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起了解一下2023-08-08Vue-router結(jié)合transition實(shí)現(xiàn)app前進(jìn)后退動(dòng)畫切換效果的實(shí)例
下面小編就為大家?guī)硪黄猇ue-router結(jié)合transition實(shí)現(xiàn)app前進(jìn)后退動(dòng)畫切換效果的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10element-plus一個(gè)vue3.xUI框架(element-ui的3.x 版初體驗(yàn))
這篇文章主要介紹了element-plus一個(gè)vue3.xUI框架(element-ui的3.x 版初體驗(yàn)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Vue 中 filter 與 computed 的區(qū)別與用法解析
這篇文章主要介紹了Vue 中 filter 與 computed 的區(qū)別與用法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11vue+elementUI實(shí)現(xiàn)點(diǎn)擊按鈕互斥效果
這篇文章主要為大家詳細(xì)介紹了vue+elementUI實(shí)現(xiàn)點(diǎn)擊按鈕互斥效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04