vue插件vue-infinite-loading 加载更多用法
首先先下载
npm install vue-infinite-loading --save
下载完成后
在需要用的页面引入该组件
import InfiniteLoading from 'vue-infinite-loading';
然后注册组件
components: {
InfiniteLoading,
}
写一个方法
methods: { onInfinite() {//写一个方法 var _this = this; var pagesize=3; _this.page+=1; axios.get('../../static/json/homelist.json').then(function(data) { if(data.data.DoubanHeadlines.length>0) { if(pagesize*(_this.page)>=data.data.DoubanHeadlines.length) { _this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete');//停止加载 }else{ for(var i=pagesize*((_this.page)-1);i<pagesize*(_this.page);i++){ _this.homelist.push(data.data.DoubanHeadlines[i]) ; _this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded');//加载 } } } else { console.log("3+:" + _this.homelist.length) _this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete'); } }).catch(function() { console.log("ajax error") }); }, }
在dom结构中加入
<infinite-loading :on-infinite="onInfinite" ref="infiniteLoading">//调用方法
<span slot="no-more">//停止后显示的内容
已经没有啦~~
</span>
</infinite-loading>
完整例子
<template> <div> <div class="flex_40"> <div> <ul> <li> <a>影院热映</a> </li> <li> <a>欧美新榜</a> </li> <li> <a>注册账号</a> </li> <li> <a>登录豆瓣</a> </li> </ul> </div> </div> <div class="list-link" v-for="item in homelist"> <a class="thumbnail"> <div class="content"><img :src="item.images" alt="cover"> <h3>{{item.title}}</h3> <p>{{item.Matters}}</p> </div> <div class="author"><span class="name">{{item.author}}</span> <span class="label"> {{item.label}} </span> </div> </a> </div> <infinite-loading :on-infinite="onInfinite" ref="infiniteLoading"> <loading></loading> <span slot="no-more"> 已经没有啦~~ </span> </infinite-loading> </div> </template> <script> import InfiniteLoading from 'vue-infinite-loading'; import loading from "@/components/Loading" import axios from "axios" export default { name: "home", data() { return { homelist: [], isshow: false, page:0 } }, components: { InfiniteLoading, loading }, methods: { onInfinite() { var _this = this; var pagesize=3; _this.page+=1; axios.get('../../static/json/homelist.json').then(function(data) { if(data.data.DoubanHeadlines.length>0) { if(pagesize*(_this.page)>=data.data.DoubanHeadlines.length) { _this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete'); }else{ for(var i=pagesize*((_this.page)-1);i<pagesize*(_this.page);i++){ _this.homelist.push(data.data.DoubanHeadlines[i]) ; _this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded'); } } } else { console.log("3+:" + _this.homelist.length) _this.$refs.infiniteLoading.$emit('$InfiniteLoading:complete'); } }).catch(function() { console.log("ajax error") }); }, } } </script> <style scoped="scoped"> .flex_40 { text-align: center; margin: 0 1.8rem; padding-top: .2rem; } .flex_40 ul { overflow: hidden; margin: 1rem; padding-top: .6rem; } .flex_40 li { float: left; width: 50%; padding: .3rem; box-sizing: border-box; font-size: 1.5rem; } .loading-default{ background: url(../assets/loading_green.gif) no-repeat 0 0 100% !important; } .flex_40 li a { display: block; max-width: 100%; padding: 1.2rem 0; line-height: 2rem; text-align: center; background-color: white; color: #494949; border-radius: .2rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-wrap: normal; } .thumbnail { background-color: transparent; position: relative; display: block; padding: 2.5rem 1.8rem 2.5rem 0; margin-left: 1.8rem; border-bottom: 1px solid rgba(0, 0, 0, 0.05); } .thumbnail .content { overflow: hidden; margin-bottom: 1rem; } .thumbnail .content img { float: right; width: 25.6%; height: 8.678rem; margin-left: 2.5rem; } .thumbnail .content h3 { margin-top: 0; margin-bottom: .6rem; line-height: 1.41; text-align: justify; font-size: 1.7rem; font-weight: 500; color: #494949; } .thumbnail .content p { line-height: 1.5; text-align: justify; color: #aaa; font-size: 1.2rem; overflow: hidden; } .author { font-size: 1.2rem; color: #ccc; } .label { position: absolute; bottom: 2.5rem; right: 1.8rem; } </style>
本文来自博客园,作者:zhupan,转载请注明原文链接:https://www.cnblogs.com/zhupanpan/p/9685073.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?