<template> <div> <van-nav-bar fixed title="數據列表" right-text="退出登錄" /> <div class="list-content" id="list-content"> <van-pull-refresh v-model="isLoading" @refresh="onRefresh"> <van-list v-model="loading" :finished="finished" @load="onLoad" :offset="10" > <div class="list-item"> <van-cell v-for="item in list" :key="item" :title="item + ''" /> </div> </van-list> </van-pull-refresh> </div> </div> </template> <script> export default { data(){ return { list: [], loading: false, //是否處於加載狀態 finished: false, //是否已加載完所有數據 isLoading: false, //是否處於下拉刷新狀態 } }, methods:{ onLoad() { //上拉加載 setTimeout(() => { for (let i = 0; i < 15; i++) { this.list.push(this.list.length + 1); } this.loading = false; if (this.list.length >= 60) { this.finished = true; } }, 500); }, onRefresh() { //下拉刷新 setTimeout(() => { this.finished = false; this.isLoading = false; this.list = [] this.onLoad() }, 500); } }, mounted(){ let winHeight = document.documentElement.clientHeight //視口大小 document.getElementById('list-content').style.height = (winHeight - 46) +'px' //調整上拉加載框高度 } } </script> <style scoped> .list-content{ margin-top:46px; overflow:scroll; } .list-item{ text-align:center; } </style>