当前位置:首页 > VUE

vue怎么实现分页查询

2026-02-20 18:31:56VUE

Vue 实现分页查询的方法

前端分页实现

使用 v-for 渲染分页数据,结合计算属性实现前端分页:

data() {
  return {
    currentPage: 1,
    pageSize: 10,
    totalItems: 100,
    allItems: [] // 所有数据
  }
},
computed: {
  paginatedItems() {
    const start = (this.currentPage - 1) * this.pageSize
    const end = start + this.pageSize
    return this.allItems.slice(start, end)
  },
  totalPages() {
    return Math.ceil(this.totalItems / this.pageSize)
  }
}

后端分页实现

通过 API 请求获取分页数据:

methods: {
  fetchData() {
    const params = {
      page: this.currentPage,
      size: this.pageSize
    }
    axios.get('/api/data', { params })
      .then(response => {
        this.paginatedItems = response.data.items
        this.totalItems = response.data.total
      })
  },
  handlePageChange(page) {
    this.currentPage = page
    this.fetchData()
  }
}

分页组件使用

推荐使用 Element UI 的分页组件:

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

自定义分页组件

实现简单分页控件:

<div class="pagination">
  <button 
    @click="currentPage--" 
    :disabled="currentPage === 1">
    上一页
  </button>
  <span>第 {{ currentPage }} 页</span>
  <button 
    @click="currentPage++" 
    :disabled="currentPage >= totalPages">
    下一页
  </button>
</div>

分页优化技巧

添加 loading 状态提升用户体验:

data() {
  return {
    isLoading: false
  }
},
methods: {
  async fetchData() {
    this.isLoading = true
    try {
      // API 调用
    } finally {
      this.isLoading = false
    }
  }
}

使用防抖减少频繁请求:

vue怎么实现分页查询

import { debounce } from 'lodash'

methods: {
  handlePageChange: debounce(function(page) {
    this.currentPage = page
    this.fetchData()
  }, 300)
}

标签: 分页vue
分享给朋友:

相关文章

vue 实现

vue 实现

Vue 实现的基本步骤 安装 Vue.js 可以通过 npm 或 CDN 引入。使用 npm 安装适合大型项目,CDN 适合快速原型开发。 npm install vue 在 HTML 文件中引入…

实现vue框架

实现vue框架

Vue框架的基本实现 Vue是一个渐进式JavaScript框架,用于构建用户界面。以下是实现Vue框架的基本步骤: 安装Vue 通过CDN引入Vue是最简单的方式: <script src…

vue mvvm 实现

vue mvvm 实现

Vue MVVM 实现原理 Vue.js 的 MVVM(Model-View-ViewModel)架构通过数据绑定和响应式系统实现视图与数据的自动同步。以下是其核心实现机制: 数据劫持与响应式系统…

vue实现伸缩

vue实现伸缩

Vue实现伸缩功能的方法 使用CSS过渡和Vue的v-if或v-show 通过CSS的transition属性结合Vue的条件渲染指令(v-if或v-show)可以实现元素的伸缩效果。定义一个CSS类…

vue源码实现

vue源码实现

Vue 源码实现解析 Vue.js 的核心实现可以分为响应式系统、虚拟 DOM、模板编译、组件化等几个关键部分。以下是对这些核心机制的详细解析。 响应式系统 Vue 的响应式系统基于 Object.…

vue实现定位效果

vue实现定位效果

使用Geolocation API实现定位 在Vue中可以通过浏览器内置的Geolocation API获取用户位置信息。需要在组件的mounted钩子中调用相关方法: mounted() {…