vue实现分页加载效果


Posted in Javascript onDecember 24, 2019

本文实例为大家分享了vue分页加载的具体代码,供大家参考,具体内容如下

vue实现分页加载效果

HTML

<!-- 商品 页数-->
 <div class="pagenavi">
  <div class="all-number">
  <span>共{{data.length}}个商品</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>
 
 <!--限制加载数量-->
 <ul class="cata_choose_product clearfix">
 <!--渲染数据  从那个下标开始加载-->
 <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>
  <!--动态生成页数标签-->
  <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:"",//页面数据
 num:0,
 pages:1,//当前页数
 priceQuery:false,//价格排序判断
 Total:"",//总页数(向上取整)
 initial:4,//默认加载数量
 total:"",//最终页数
 }
 },
 created(){
 //获取初始数据
 axios.get("'../../static/mock/data.json").then(res=>{
 this.Total = res.data.goods[0].foods.length;
 var arr = [];
 //限制获取数据量
 for(var i=0;i<this.initial;i++){
 //加载数据  页数+数量
 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(){
 //页数++
 if(this.pages == this.total){
  this.pages = this.total;
 }else{
  this.pages++;
 }
 //从 加载数据 下标+数量
 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();
 },
 //刷新数据
 sua(){
 axios.get("'../../static/mock/data.json").then(res=>{
 var arr = [];
 //限制获取数据量
 for(var i=0;i<this.initial;i++){
 //判断数据是否有undefined,有undefined会报错无法加载
 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);
 }); 
 },
 //页数选择
 yesu(e){
// console.log(e.target.id);
 this.num = (e.target.id)*4;
 this.pages = Number(e.target.id)+1;
 this.sua();
 },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
Bootstrap每天必学之导航条(二)
Mar 01 Javascript
javascript基础练习之翻转字符串与回文
Feb 20 Javascript
Bootstrap按钮组简单实现代码
Mar 06 Javascript
微信小程序实现下载进度条的方法
Dec 08 Javascript
解决vue多个路由共用一个页面的问题
Mar 12 Javascript
微信小程序自定义多选事件的实现代码
May 17 Javascript
JavaScript学习笔记之数组基本操作示例
Jan 09 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
Nov 07 Javascript
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
微信小程序如何获取地址
Dec 24 #Javascript
浅析vue-router中params和query的区别
Dec 24 #Javascript
JavaScript实现英语单词题库
Dec 24 #Javascript
iSlider手机端图片滑动切换插件使用详解
Dec 24 #Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 #Javascript
js实现鼠标点击页面弹出自定义文字效果
Dec 24 #Javascript
javascript实现鼠标点击生成文字特效
Dec 24 #Javascript
You might like
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
Python smallseg分词用法实例分析
2015/05/28 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
python简单实现操作Mysql数据库
2018/01/29 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
加热夹克:RAVEAN
2018/10/19 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
J2EE系统只能是基于web
2015/09/08 面试题
会计人员岗位职责
2014/03/19 职场文书
骨干教师培训方案
2014/05/06 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
大学活动总结模板
2014/07/10 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
利用Pycharm连接服务器的全过程记录
2021/07/01 Python
MySQL 如何限制一张表的记录数
2021/09/14 MySQL