生成计算属性,如下所示:
<template lang="html">
<div class="pagination">
<div v-for="page in displayPages"> <!--change here -->
<div class="page" :class="{ active: page == currentPage}" @click="setCurrentPage(page)">{{ page }}</div>
</div>
</div>
</template>
<script>
export default {
props: ["totalPages", "currentPage"],
computed: {
displayPages() {
return [-2, -1, 0, 1, 2].map(num => num + this.currentPage).filter(num => num <= totalPages && num > 0);
// produces array of 5 or less
// currentPage = 1 -> return [1, 2]
// current page = 8(last) -> [6, 7, 8]
},
},
methods: {
setCurrentPage(page){
this.$emit("setCurrentPage", page);
}
}
}
</script>
它应该限制按钮和可伸缩性;只需将数组更改为可伸缩性。