vue底部加载更多的实例代码


Posted in Javascript onJune 29, 2018

要实现的效果如下:

vue底部加载更多的实例代码

<template>
 <div class="newsList">
  <div v-for="(items, index) in newsList">
   <div class="date">{{showDay(index)}}</div>
   <div class="list" >
    <ul>
     <li class="list-item" v-for="item in items">
      <span class="text">{{item.title}}</span>
      <img :src="attachImageUrl(item.images[0])" class="image"/>
     </li>
    </ul>
   </div>
  </div>
  <div class="infinite-scroll" v-show="loading">
   <svg class="loader-circular" viewBox="25 25 50 50">
    <circle class="loader-path" cx="50" cy="50" r="20" fill="none" stroke="rgb(53, 157, 218)" stroke-width="5"></circle>
   </svg>
   <span class="infinite-scroll-text">{{tips}}</span>
  </div>
 </div>
</template>
<script>
 import axios from 'axios';
 export default {
  data () {
   return {
    newsList: [],
    date: [],
    todayDate: '',
    REQUIRE: true,
    loading: false,
    tips: '努力加载中...'
   }
  },
  created () {
   // 获取今日新闻
   axios.get('http://zhihuapi.herokuapp.com/api/4/news/latest')
    .then( (res) => {
    this.newsList.push(res.data['stories'])
    this.date.push(res.data['date']);
    this.todayDate = res.data['date']
   })
  },
  mounted () {
   // 添加滚动事件,检测滚动到页面底部
   window.addEventListener('scroll', this.scrollBottom)
  },
  methods: {
   scrollBottom() {
    // 滚动到页面底部时,请求前一天的文章内容
    if (((window.screen.height + document.body.scrollTop) > (document.body.clientHeight)) && this.REQUIRE) {
     // 请求的数据未加载完成时,滚动到底部不再请求前一天的数据
     this.REQUIRE = false;
     this.loading = true;
     this.tips = '努力加载中...';
     axios.get('http://zhihuapi.herokuapp.com/api/4/news/before/' + this.todayDate).then((res) => {
      this.newsList.push(res.data['stories']);
     this.date.push(res.data['date']);
     this.todayDate = res.data['date'];
     // 请求的数据加载完成后,再次滚动到底部时,允许请求前一天数据
     this.$nextTick(() => {
      this.REQUIRE = true;
      this.loading = false;
     });
    }).catch(() => {
      this.tips = '连接失败,请稍后重试';
     // 请求失败时,将 REQUIRE 置为 true,滚动到底部时,再次请求
     this.REQUIRE = true;
    });
    }
   },
   showDay (index) {
    if (index === 0) {
     return '今日新闻'
    } else {
     return this.getToday(index)
    }
   },
   getToday (index) {
    let year = this.date[index].slice(0, 4);
    let month = this.date[index].slice(4, 6);
    let day = this.date[index].slice(6);
    let today = new Date(year + '/' + month + '/' + day);
    let week = ['日', '一', '二', '三', '四', '五', '六'];
    return month + '月' + day + '日' + ' 星期' + week[today.getDay()];
   },
   attachImageUrl (srcUrl) {
    if (srcUrl !== undefined) {
     return 'http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl=' + srcUrl.slice(0, 4) + srcUrl.slice(5);
    }
   }
  }
 }
</script>

总结

以上所述是小编给大家介绍的vue底部加载更多的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
Nov 30 Javascript
用js实现输入提示(自动完成)的实例代码
Jun 14 Javascript
Firefox和IE兼容性问题及解决方法总结
Oct 08 Javascript
javascript获取元素CSS样式代码示例
Nov 28 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
Jan 19 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
详解JS构造函数中this和return
Sep 16 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
Dec 31 Javascript
js实现无缝轮播图
Mar 09 Javascript
vue实现书本翻页动画效果实例详解
Apr 08 Vue.js
React更新渲染原理深入分析
Dec 24 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
Jun 29 #Javascript
vue项目打包后打开页面空白解决办法
Jun 29 #Javascript
详解Vue webapp项目通过HBulider打包原生APP
Jun 29 #Javascript
Vue下路由History模式打包后页面空白的解决方法
Jun 29 #Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
Jun 29 #Javascript
JavaScript实现仿Clock ISO时钟
Jun 29 #Javascript
vue ssr 指南详读
Jun 29 #Javascript
You might like
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
解析PHP中如何将数组变量写入文件
2013/06/06 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
JQuery 浮动导航栏实现代码
2009/08/27 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
python中base64加密解密方法实例分析
2015/05/16 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
如何在django中实现分页功能
2020/04/22 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
矫正人员思想汇报
2014/01/08 职场文书
小学生家长寄语
2014/04/02 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
化工专业求职信
2014/07/01 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
java设计模式--七大原则详解
2021/07/21 Java/Android
Mysql中mvcc各场景理解应用
2022/08/05 MySQL