Vue 无限滚动(分页加载)

本文详细介绍如何在Vue项目中安装和使用无限滚动插件vue-infinite-scroll,通过实例演示了如何配置和调用该插件,实现数据的懒加载效果,适用于需要分页展示大量数据的场景。
  1. 安装

npm install vue-infinite-scroll --save
1
2. main.js中配置并使用

import infiniteScroll from ‘vue-infinite-scroll’;
Vue.use(infiniteScroll)
1
2
3. 用法

1.放在底部

1 2 3 2.方法

var count = 0;

新的Vue({
el:’#app’,
数据:{
数据:[],
忙:假
},
方法: {
loadMore:function(){
this.busy = true;

  setTimeout(()=> {
    for(var i = 0,j = 10; i <j; i ++){
      this.data.push({name:count ++});
    }
    this.busy = false;
  },1000);
}

}
})


作者:少女彤
来源:优快云
原文:https://blog.youkuaiyun.com/weixin_43244655/article/details/83477490
版权声明:本文为博主原创文章,转载请附上博文链接!

Vue 3和ElementUI中实现表格滚动分页加载,可参考以下步骤和示例代码: ### 实现思路 设置表格固定高度以支持滚动,监听表格的滚动事件,当滚动到底部时,触发加载新数据的逻辑。通过当前页码和每页数量计算已加载数据范围,更新表格数据。若加载数据超过总数据量,则停止加载。 ### 代码示例 ```vue <template> <div> <el-table :data="tableData" height="400px" ref="tableRef" @scroll="handleScroll" > <!-- 表格列定义 --> <el-table-column prop="id" label="ID"></el-table-column> <el-table-column prop="name" label="Name"></el-table-column> </el-table> </div> </template> <script setup> import { ref, onMounted } from 'vue'; // 表格引用 const tableRef = ref(null); // 表格数据 const tableData = ref([]); // 当前页码 const currentPage = ref(1); // 每页数量 const pageSize = ref(10); // 总数据量 const total = ref(100); // 模拟获取数据的函数 const fetchData = async (page, size) => { // 这里可以替换为实际的API请求 const start = (page - 1) * size; const end = start + size; const newData = []; for (let i = start; i < end; i++) { newData.push({ id: i + 1, name: `Item ${i + 1}` }); } return newData; }; // 加载数据的函数 const loadData = async () => { if (currentPage.value * pageSize.value > total.value) { return; } const newData = await fetchData(currentPage.value, pageSize.value); tableData.value = [...tableData.value, ...newData]; currentPage.value++; }; // 处理滚动事件 const handleScroll = () => { const tableWrapper = tableRef.value.$el.querySelector('.el-table__body-wrapper'); const scrollDistance = tableWrapper.scrollHeight - tableWrapper.scrollTop - tableWrapper.clientHeight; if (scrollDistance <= 0) { loadData(); } }; // 初始化加载数据 onMounted(() => { loadData(); }); </script> ``` ### 代码解释 1. **模板部分**:使用`el-table`组件展示表格数据,设置`height`属性使其可滚动,并绑定`@scroll`事件到`handleScroll`方法。 2. **脚本部分**: - 使用`ref`定义表格引用、表格数据、当前页码、每页数量和总数据量。 - `fetchData`函数模拟获取数据的过程,可替换为实际的API请求。 - `loadData`函数用于加载新数据,更新表格数据和当前页码。 - `handleScroll`函数监听表格滚动事件,当滚动到底部时调用`loadData`函数。 - `onMounted`钩子在组件挂载后初始化加载数据。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值