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 相关文章推荐
Javascript Cookie读写删除操作的函数
Mar 02 Javascript
表单的焦点顺序tabindex和对应enter键提交
Jan 04 Javascript
javascript常用对话框小集
Sep 13 Javascript
JavaScript将页面表格导出为Excel的具体实现
Dec 27 Javascript
jQuery的css()方法用法实例
Dec 24 Javascript
基于JQuery打造无缝滚动新闻步骤详解
Mar 31 Javascript
JS简单实现无缝滚动效果实例
Aug 24 Javascript
微信小程序 swiper组件详解及实例代码
Oct 25 Javascript
BootStrap表单验证实例代码
Jan 13 Javascript
easyui-datagrid特殊字符不能显示的处理方法
Apr 12 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
Vue之封装公用变量以及实现方式
Jul 31 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
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
轻松实现php文件上传功能
2017/02/17 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python版简单工厂模式
2017/10/16 Python
python字符串string的内置方法实例详解
2018/05/14 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
酒店管理专业自荐信
2014/05/23 职场文书
运动会的口号
2014/06/09 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
常住证明范本
2015/06/23 职场文书
初中思想品德教学反思
2016/02/24 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
php双向队列实例讲解
2021/11/17 PHP
Python实现制作销售数据可视化看板详解
2021/11/27 Python
工厂无线对讲系统解决方案
2022/02/18 无线电
Win11快速关闭所有广告推荐
2022/04/19 数码科技