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 相关文章推荐
EasyUI 中 MenuButton 的使用方法
Jul 14 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
Feb 05 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
jQuery制作拼图小游戏
Jan 12 Javascript
Javascript节点关系实例分析
May 15 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
Jun 14 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
Dec 20 Javascript
浅谈gulp创建完整的项目流程
Dec 20 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
Jun 04 Javascript
vue项目接口域名动态获取操作
Aug 13 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 Javascript
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
使用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下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
prototype 的说明 js类
2006/09/07 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
python获取外网IP并发邮件的实现方法
2017/10/01 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
使用Pycharm分段执行代码
2020/04/15 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
2014/09/02 HTML / CSS
介绍下Java中==和equals的区别
2013/09/01 面试题
爱祖国爱家乡演讲稿
2014/09/02 职场文书
公司员工离职证明书
2014/10/04 职场文书
个人年终总结范文
2015/03/09 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
Javascript的promise,async和await的区别详解
2022/03/24 Javascript
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技
python实现学员管理系统(面向对象版)
2022/06/05 Python