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 相关文章推荐
Prototype的Class.create函数解析
Sep 22 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
Jul 10 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
Dec 19 Javascript
简介JavaScript中substring()方法的使用
Jun 06 Javascript
同步异步动态引入js文件的几种方法总结
Sep 23 Javascript
javascript中call,apply,bind函数用法示例
Dec 19 Javascript
详解vue.js之绑定class和style的示例代码
Aug 24 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
使用javascript做在线算法编程
May 25 Javascript
electron实现qq快捷登录的方法示例
Oct 22 Javascript
vue 实现动态路由的方法
Jul 06 Javascript
vuex的使用步骤
Jan 06 Vue.js
详解使用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
用 PHP5 轻松解析 XML
2006/12/04 PHP
一个捕获函数输出的函数
2007/02/14 PHP
php获取远程文件大小
2015/10/20 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
php中序列化与反序列化详解
2017/02/13 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
python打造爬虫代理池过程解析
2019/08/15 Python
NumPy中的维度Axis详解
2019/11/26 Python
Python 发送邮件方法总结
2020/08/10 Python
Python Http请求json解析库用法解析
2020/11/28 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
聚美优品恶搞广告词
2014/03/14 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
毕业典礼致辞
2015/07/29 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python