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 相关文章推荐
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
Mar 27 Javascript
JSON+HTML实现国家省市联动选择效果
May 18 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
Oct 22 Javascript
jquery中animate的stop()方法作用实例分析
Jan 30 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
微信小程序  audio音频播放详解及实例
Nov 02 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
Dec 30 Javascript
简单说说angular.json文件的使用
Oct 29 Javascript
node和vue实现商城用户地址模块
Dec 05 Javascript
Vue实现多标签选择器
Nov 28 Javascript
微信小程序中使用 async/await的方法实例分析
May 06 Javascript
vue-cli4.x创建企业级项目的方法步骤
Jun 18 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数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
两种php实现图片上传的方法
2016/01/22 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
清除输入框内的空格
2016/12/21 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
python批量复制图片到另一个文件夹
2018/09/17 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
pybind11在Windows下的使用教程
2019/07/04 Python
flask框架路由常用定义方式总结
2019/07/23 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
Linux机考试题
2015/07/17 面试题
区域销售经理职责
2013/12/22 职场文书
初中家长寄语
2014/04/02 职场文书
免职证明样本
2014/10/23 职场文书
工地食品安全责任书
2015/05/09 职场文书
2015年林业工作总结
2015/05/14 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
Django rest framework如何自定义用户表
2021/06/09 Python
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android