vue中实现滚动加载更多的示例


Posted in Javascript onNovember 08, 2017

在以前的前端刀耕火种时代要实现滚动加载更多想要大家都是很快实现了,在vue会有一点麻烦,最近自己研究了一下,做了一个简单的demo,供大家参考:

<template>
  <div>
    <ul>
      <li v-for="item in articles">
        <h2>{{item.title}}</h2>
        <img :src="item.images" alt="">
      </li>
    </ul>
  </div>
</template>
<script>
  import axios from 'axios';
  export default{
    data(){
      return {
        articles : []
      }
    },
    mounted(){
      // 缓存指针
      let _this = this;
      // 设置一个开关来避免重负请求数据
      let sw = true;
      // 此处使用node做了代理
      axios.get('http://localhost:3000/proxy?url=http://news-at.zhihu.com/api/4/news/latest')
        .then(function(response){
          // console.log(JSON.parse(response.data).stories);
          // 将得到的数据放到vue中的data
          _this.articles = JSON.parse(response.data).stories;
        })
        .catch(function(error){
          console.log(error);
        });

      // 注册scroll事件并监听
      window.addEventListener('scroll',function(){
        // console.log(document.documentElement.clientHeight+'-----------'+window.innerHeight); // 可视区域高度
        // console.log(document.body.scrollTop); // 滚动高度
        // console.log(document.body.offsetHeight); // 文档高度
        // 判断是否滚动到底部
        if(document.body.scrollTop + window.innerHeight >= document.body.offsetHeight) {
          // console.log(sw);
          // 如果开关打开则加载数据
          if(sw==true){
            // 将开关关闭
            sw = false;
            axios.get('http://localhost:3000/proxy?url=http://news.at.zhihu.com/api/4/news/before/20170608')
              .then(function(response){
                console.log(JSON.parse(response.data));
                // 将新获取的数据push到vue中的data,就会反应到视图中了
                JSON.parse(response.data).stories.forEach(function(val,index){
                  _this.articles.push(val);
                  // console.log(val);
                });
                // 数据更新完毕,将开关打开
                sw = true;
              })
              .catch(function(error){
                console.log(error);
              });  
          }
        }
      });
    }
  }
</script>
<style lang="less">
  *{
    margin:0;
    padding:0;
  }
  li{
    list-style:none;
  }
</style>

大致效果如下

vue中实现滚动加载更多的示例

当然目前只是一个demo,还有更好的解决办法大家自行补充。

以上这篇vue中实现滚动加载更多的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS打开新窗口的2种方式
Apr 18 Javascript
jquery 按钮状态效果 正常、移上、按下
Aug 12 Javascript
javascript创建cookie、读取cookie
Mar 31 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
Apr 11 Javascript
微信小程序商品到详情的实现
Jun 27 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
vue结合axios与后端进行ajax交互的方法
Jul 06 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
Apr 28 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
深入webpack打包原理及loader和plugin的实现
May 06 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
Jun 10 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
Nov 30 Javascript
详解使用webpack打包编写一个vue-toast插件
Nov 08 #Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 #Javascript
详解如何使用webpack在vue项目中写jsx语法
Nov 08 #Javascript
thinkjs 文件上传功能实例代码
Nov 08 #Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 #jQuery
在React 组件中使用Echarts的示例代码
Nov 08 #Javascript
浅谈mint-ui loadmore组件注意的问题
Nov 08 #Javascript
You might like
人族 Terran 基本策略
2020/03/14 星际争霸
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
javascript页面渲染速度测试脚本分享
2014/04/15 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
python检测是文件还是目录的方法
2015/07/03 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
python实现周期方波信号频谱图
2018/07/21 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
Python解析微信dat文件的方法
2020/11/30 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
最新奶茶店创业计划书范文
2014/02/08 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
火箭队口号
2014/06/18 职场文书
安全施工责任书
2014/08/25 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
个人务虚会发言材料
2014/10/20 职场文书
团员个人总结
2015/02/26 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL