文件夹目录如下:
使用方式:
<template>
<div
class="time-line"
v-infinite-scroll="{
loadMore: loadMoreItems,
threshold: 100 // 当滚动到距离底部 100 像素时触发加载
}"
>
</div>
</template>
<script lang="ts" setup>
// 下拉懒加载加载数据
const loadMoreItems = () => {
console.log("下拉懒加载");
return new Promise(resolve => {
setTimeout(() => {
timeLineList.value.push(...new Array(10).fill(null).map(() => Math.random() * 99999999));
resolve(true);
}, 1000);
});
};
</script>
infiniteScroll.ts代码如下:
/**
* v-infiniteScroll
* 下拉懒加载
*/
import type { Directive, DirectiveBinding } from "vue";
// 定义一个接口来描述绑定