最近刚结束了一个vue项目,项目中发现了自己很多问题,例如,看到功能就想要使用插件,(⊙o⊙)…,这样是肯定不行呀,哎,用插件可以,自己也得会写呀,现在就记录一下一个不错的滚动加载数据。

  1.页面布局(重点是 class="listWrapper" 以及 class="list")

      <div class="listWrapper" ref="list_c"><ul class="list" v-if="collectlist && collectlist.length>0" ref="list"><li v-for="(item,index) of collectlist" :key="index"><router-link :to="{name:'detail',query:{goods_sku_id:item.goods_sku_id}}"><div class="picture"><img :src="item.image"></div><div class="info-content"><p class="pro-tit">{{item.name}}</p><p class="price"><span>¥{{item.price}}</span><span class="old-price">¥{{item.ot_price}}</span></p><p class="count">已售{{item.sales_num}}件</p></div></router-link><div class="collection-delete" @click="delect(item)"></div></li></ul></div>

  2.样式

.listWrapper {
position: absolute;
top: 0.88rem;
width: 100%;bottom: 0;
overflow-y: auto;
}
.list {background-color: #fff;}

  3.js

  data数据

data() {return {page: 1, pagesize: 8, collectlist: [], canscroll: true, activeisload: true };
}                

  在mounted钩子中添加监听器(addEventListener)

  mounted() {let list_c = this.$refs.list_c;list_c.addEventListener("scroll", () => {if (this.canscroll) {//是否具有触发条件let scroll_top = list_c.scrollTop;let list = this.$refs.list;let list_height = parseInt(getComputedStyle(list).height);let c_height = parseInt(getComputedStyle(list_c).height);if (list_height - (scroll_top + c_height) < 200) {this.canscroll = false; //锁定滚动触发条件if (this.activeisload) {this.page++;this.getCollect();} else {console.log("已加载完所有已收藏的商品");}}}});}

  请求接口数据(this.$post是封装的方法,自行代入实际场景)

    getCollect: function() {this.$post(url, {page: this.page,pagesize: this.pagesize}).then(res => {if (res.code == 200) {if (res.data.length) {this.collectlist = this.collectlist.concat(res.data);if (res.data.length < this.pagesize) {this.activeisload = false;console.log("已加载完");} else {this.canscroll = true;}}}}).catch();},

转载于:https://www.cnblogs.com/zero18/p/10956741.html

01-vue项目之滚动加载数据相关推荐

  1. vue 实现数据滚动显示_vue 滚动加载数据

    table数据多的时候打开页面会加载一会才显示数据,这样体验不好,所以要做滚动加载数据 {{eventMap[scope.row.eventId] == null ? '--': eventMap[s ...

  2. vue2.0无限滚动加载数据插件

      做vue项目用到下拉滚动加载数据功能,由于选的UI库(element)没有这个组件,就用Vue-infinite-loading 这个插件代替,使用中遇到的一些问题及使用方法,总结作记录! 安装: ...

  3. php 无限滚动加载,无限滚动,_无限滚动加载数据问题,无限滚动 - phpStudy

    无限滚动加载数据问题 做移动端程序的时候,经常会遇到无限滚动的功能,通常实现无限滚动的方式是页面滚动到底部后出发一个ajax请求,后端返回数据然后动态追加DOM,但是如果DOM结构很复杂,追加的时候拼 ...

  4. jquery ajax 滚动加载数据

    jquery php 滚动加载数据(文件包 rollingpage) 效果如下: 页面加载时候($function(){ 自动加载第一页数据 }) 设置: var winH = $(window).h ...

  5. vue项目首屏加载过慢解决方案

    前言 因为我的一个vue项目首页打开加载了好久,所以决定优化一下.发现是打包体积太大了,页面才加载慢主要是第三方库. 优化着优化着就想要更好一点,于是逛博客搜索,参照了几个博主的解决方法整理出一下几点 ...

  6. Vue向下滚动加载更多数据-scroll-案例

    vue-infinite-scroll 安装 npm install vue-infinite-scroll --save 尽管官方也推荐了几种载入方式,但"最vue"的方式肯定是 ...

  7. 【无限滚动加载数据】—infinite-scroll插件的使用

    网上对于infinite-scroll插件使用的例子不多.但由于它的出现,鼓吹了瀑布流形式的页面展示方式,所以不得不了解了解这种新的分页方式. 官网上有对infinite-scroll的详细描述,但一 ...

  8. VUE项目中图片加载过大处理方式-渐进式方式-懒加载方式--附源码

    解决有两步: 1.采用渐进式加载:原图未加载完时显示比它内存小的模糊图: 2.采用懒加载:只加载可视区域的图片,即滚动到可视区域时再加载图片 vue-lazyload-img:VUE图片懒加载插件 v ...

  9. 百度地图:层级地图、行政边界、圆形覆盖物、自定义覆盖物、可视化数据显示、放大及缩小、下拉滚动加载数据等...

    写了一天,以下是我自己摸索出来的,暂时只做了两层地图,废话不多说,上图上代码 图片: 第一层地图 点击圆形覆盖物或者放大地图进入第二层地图,缩放会回到第一层 拖拽地图或者缩放地图会触发可视化数据 下拉 ...

最新文章

  1. 基础通俗讲解集成学习算法
  2. Vue组件中使用Sass或者Less全局变量
  3. python链表翻转_Python数据结构之旋转链表
  4. php实现的mongodb操作类
  5. 扩展欧几里得求解ax+by=c的特殊解(模板)
  6. nodeJS 开发微信公众号
  7. 汕头大学计算机英语复试,2020年汕头大学计算机应用技术考研经验分享
  8. mysql监听串口_tcp与串口透传(select)
  9. 清华同方计算机教程,清华同方电脑u盘重装系统win10教程
  10. 工具使用教程(二)【Github上传文件大于100M的文件】
  11. oracle10g rac导出ocr,Oracle RAC 迁移OCR(10g)
  12. MySQL Study之--MySQL下图形工具的使用(phpMyAdmin)
  13. android 高通替换开机logo,高通平台 开机logo 替换
  14. 键盘表和ASCII码表
  15. 认知系列3: 看看资深研发工程师的思维模式
  16. python基础总结:1.6、流程控制
  17. 清除计算机策略,怎么删除组策略
  18. oracle导入dmp文件数据不全,Oracle dmp文件损坏恢复案例
  19. C++作业之模拟打牌:小喵钓鱼
  20. 使用交易API将产品添加到您的eBay商店

热门文章

  1. 后台系统-新增和编辑共用一个弹框(基于vue和element-ui)
  2. 解决引用flexible.js使第三方ui样式缩小的方法
  3. java 通用组件_写一个通用数据访问组件
  4. CyclicBarrier(栅栏)实现高并发测试
  5. Bootstrap 下拉菜单事件
  6. to load JavaHL Library解决方法
  7. INS-13001环境不满足最低要求
  8. Table(name=“xx“)与Entity(name=“xx“) 问题
  9. PAT甲级题目对应知识点分类梳理
  10. random函数 c语言,C/C++ 中rand()和random()函数(示例代码)