Infinite Scroll Vue Component
Infinite Scroll in Vue components is a part of the Page Vue Component
Examples
infinite-scroll.vue
<template>
<f7-page
infinite
:infinite-distance="50"
:infinite-preloader="showPreloader"
@infinite="loadMore"
>
<f7-navbar title="Infinite Scroll"></f7-navbar>
<f7-block-title>Scroll bottom</f7-block-title>
<f7-list strong-ios outline-ios dividers-ios>
<f7-list-item
v-for="(item, index) in items"
:key="index"
:title="`Item ${item}`"
></f7-list-item>
</f7-list>
</f7-page>
</template>
<script>
import { f7Navbar, f7Page, f7BlockTitle, f7List, f7ListItem } from 'framework7-vue';
export default {
components: {
f7Navbar,
f7Page,
f7BlockTitle,
f7List,
f7ListItem,
},
data() {
return {
items: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
allowInfinite: true,
showPreloader: true,
};
},
methods: {
loadMore() {
const self = this;
if (!self.allowInfinite) return;
self.allowInfinite = false;
setTimeout(() => {
if (self.items.length >= 200) {
self.showPreloader = false;
return;
}
const itemsLength = self.items.length;
for (let i = 1; i <= 20; i += 1) {
self.items.push(itemsLength + i);
}
self.allowInfinite = true;
}, 1000);
},
},
};
</script>
On this page