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 相关文章推荐
用javascript实现页面打印的三种方法
Mar 05 Javascript
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
Aug 04 Javascript
jQuery UI AutoComplete 使用说明
Jun 20 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
Oct 24 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 Javascript
JS实现漂亮的时间选择框效果
Aug 20 Javascript
js转换对象为xml
Feb 17 Javascript
详解AngularJS controller调用factory
May 19 Javascript
javascript面向对象三大特征之多态实例详解
Jul 24 Javascript
小程序中英文混合排序问题解决
Aug 02 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
一些PHP写的小东西
2006/12/06 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
python使用append合并两个数组的方法
2015/04/28 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
Python map及filter函数使用方法解析
2020/08/06 Python
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
自然健康的概念:Natural Healthy Concepts
2020/01/26 全球购物
学校安全检查制度
2014/01/27 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python