当前位置:首页 > VUE

vue实现上下翻页

2026-01-17 10:54:51VUE

vue实现上下翻页功能

使用v-for和数组切片

通过v-for渲染当前页数据,结合数组切片实现分页逻辑。data中定义当前页码和每页条数,计算属性返回当前页数据。

data() {
  return {
    list: [], // 全部数据
    currentPage: 1,
    pageSize: 10
  }
},
computed: {
  paginatedData() {
    const start = (this.currentPage - 1) * this.pageSize
    const end = start + this.pageSize
    return this.list.slice(start, end)
  }
},
methods: {
  prevPage() {
    if (this.currentPage > 1) this.currentPage--
  },
  nextPage() {
    if (this.currentPage < this.totalPages) this.currentPage++
  }
}

使用第三方分页组件

安装分页组件库如element-ui的Pagination组件,快速实现标准分页功能。

<template>
  <el-pagination
    @current-change="handleCurrentChange"
    :current-page="currentPage"
    :page-size="pageSize"
    layout="prev, pager, next"
    :total="total">
  </el-pagination>
</template>

无限滚动加载

监听滚动事件,当滚动到底部时自动加载下一页数据,适合移动端场景。

mounted() {
  window.addEventListener('scroll', this.handleScroll)
},
methods: {
  handleScroll() {
    const scrollY = window.scrollY
    const visibleHeight = window.innerHeight
    const pageHeight = document.documentElement.scrollHeight
    const bottom = pageHeight - (scrollY + visibleHeight) < 50

    if (bottom && !this.loading) {
      this.loadNextPage()
    }
  }
}

路由参数分页

通过路由参数保存当前页码,实现可分享的分页链接。

watch: {
  '$route.query.page'(newPage) {
    this.currentPage = Number(newPage) || 1
  }
},
methods: {
  changePage(page) {
    this.$router.push({
      query: { ...this.$route.query, page }
    })
  }
}

键盘事件翻页

监听键盘上下箭头事件实现快捷翻页,提升用户体验。

mounted() {
  document.addEventListener('keydown', this.handleKeyDown)
},
methods: {
  handleKeyDown(e) {
    if (e.key === 'ArrowUp') this.prevPage()
    if (e.key === 'ArrowDown') this.nextPage()
  }
}

每种实现方式适用于不同场景,可根据具体需求选择合适方案。数组切片方案适合简单列表,第三方组件提供完整分页功能,无限滚动适合移动端浏览,路由参数分页支持页面状态共享,键盘事件增强操作便捷性。

vue实现上下翻页

标签: 翻页上下
分享给朋友:

相关文章

vue 实现翻页

vue 实现翻页

Vue 实现翻页功能 翻页功能通常用于数据分页展示,可以通过 Vue 结合分页逻辑实现。以下是常见的实现方法: 1. 基础数据分页 定义一个数据数组和分页参数,通过计算属性实现分页逻辑。 dat…

h5实现书本翻页动画

h5实现书本翻页动画

实现书本翻页动画的H5技术方案 H5实现书本翻页动画可通过CSS 3D变换、JavaScript动画库或现成的插件完成。以下是三种主流实现方式: 使用CSS 3D变换 通过CSS的transfor…

vue实现翻页效果

vue实现翻页效果

使用Vue实现翻页效果 在Vue中实现翻页效果通常需要结合分页组件和数据处理逻辑。以下是几种常见方法: 基础分页组件实现 <template> <div> &l…

vue实现上下布局

vue实现上下布局

实现上下布局的基本结构 在Vue中实现上下布局通常需要使用CSS的flexbox或grid布局方式。以下是一个基础的上下布局实现示例: <template> <div cla…

vue实现滚动翻页

vue实现滚动翻页

vue实现滚动翻页的方法 在Vue中实现滚动翻页(无限滚动)可以通过监听滚动事件或使用现成的库完成。以下是几种常见方法: 监听滚动事件实现 通过计算滚动位置触发加载更多数据: // 在组件…

vue实现滑动翻页

vue实现滑动翻页

Vue 实现滑动翻页的方法 使用 touch 事件监听 在 Vue 组件中监听 touchstart、touchmove 和 touchend 事件,通过计算滑动距离判断翻页方向。 <…