vue 实现滚动到页面底部开始加载更多
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
要在 Vue 中实现滚动到页面底部时加载更多内容,您可以借助于监听滚动事件并检查滚动位置与页面高度的关系来触发加载更多的操作。以下是一个简单的示例代码:
<template>
<div>
<div v-for="item in items" :key="item.id">{{ item.text }}</div>
<div ref="scrollEnd"></div>
</div>
</template>
<script>
export default {
data() {
return {
items: [],
currentPage: 1,
isLoading: false
};
},
mounted() {
window.addEventListener('scroll', this.handleScroll);
this.loadData();
},
methods: {
handleScroll() {
let scrollEnd = this.$refs.scrollEnd;
let scrollEndPosition = scrollEnd.getBoundingClientRect().top;
if (scrollEndPosition <= window.innerHeight && !this.isLoading) {
this.loadData();
}
},
async loadData() {
this.isLoading = true;
// 模拟异步加载数据
setTimeout(() => {
for (let i = 0; i < 10; i++) {
this.items.push({ id: this.items.length + 1, text: `Item ${this.items.length + 1}` });
}
this.currentPage++;
this.isLoading = false;
}, 1000);
}
},
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll);
}
};
</script>
在上面的示例中,我们监听了 scroll
事件,并在 handleScroll
方法中检查滚动位置是否达到页面底部。当滚动到页面底部时,会触发 loadData
方法加载更多数据。loadData
方法中模拟了异步加载数据的过程,在实际项目中可以替换为实际的异步请求。
在模板中,我们使用一个具有 ref
的空 div
元素作为页面底部的参考点,通过比较其位置和窗口高度来判断是否触发加载更多的操作。当数据加载完成后,页面会自动滚动到新加载的内容处。
GitHub 加速计划 / vu / vue
82
16
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:4 个月前 )
9e887079
[skip ci] 2 个月前
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 6 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)