当前位置:首页 > VUE

vue实现分页查询

2026-02-20 04:59:06VUE

Vue 实现分页查询的方法

后端准备分页接口

确保后端提供支持分页的 API 接口,通常需要传递 page(当前页)和 pageSize(每页条数)参数。接口返回数据应包含分页信息(如总条数 total、当前页数据 list)。

前端封装分页请求

在 Vue 中通过 axios 或其他请求工具调用分页接口,动态传递分页参数。

import axios from 'axios';

export function getPagedData(page, pageSize) {
  return axios.get('/api/data', {
    params: { page, pageSize }
  });
}

定义分页数据与状态

在 Vue 组件中定义分页相关数据(当前页、每页条数、总条数等)和列表数据。

vue实现分页查询

data() {
  return {
    currentPage: 1,
    pageSize: 10,
    total: 0,
    list: []
  };
}

加载分页数据

methods 中编写加载分页数据的方法,调用接口并更新数据。

methods: {
  loadData() {
    getPagedData(this.currentPage, this.pageSize).then(res => {
      this.list = res.data.list;
      this.total = res.data.total;
    });
  }
}

监听分页参数变化

通过 watch 或直接在翻页事件中触发数据加载,确保参数变化时重新请求数据。

vue实现分页查询

watch: {
  currentPage() {
    this.loadData();
  }
}

使用分页组件

在模板中引入分页组件(如 Element UI 的 el-pagination),绑定分页参数和事件。

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

完整组件示例

整合以上代码的完整组件示例:

<template>
  <div>
    <ul>
      <li v-for="item in list" :key="item.id">{{ item.name }}</li>
    </ul>
    <el-pagination
      @current-change="currentPage = $event"
      :current-page="currentPage"
      :page-size="pageSize"
      :total="total"
      layout="prev, pager, next">
    </el-pagination>
  </div>
</template>

<script>
import { getPagedData } from '@/api';

export default {
  data() {
    return {
      currentPage: 1,
      pageSize: 10,
      total: 0,
      list: []
    };
  },
  created() {
    this.loadData();
  },
  methods: {
    loadData() {
      getPagedData(this.currentPage, this.pageSize).then(res => {
        this.list = res.data.list;
        this.total = res.data.total;
      });
    }
  },
  watch: {
    currentPage() {
      this.loadData();
    }
  }
};
</script>

优化方向

  • 防抖处理:频繁翻页时通过防抖减少请求次数。
  • 本地缓存:对已加载的页码数据缓存,避免重复请求。
  • 错误处理:添加请求失败的反馈和重试机制。

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

相关文章

vue实现框架

vue实现框架

Vue 框架实现的核心方法 基础项目搭建 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代轻量级应用。安装后通过命令行工具选择所需配置(如 Rou…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,使…

vue 实现遮罩

vue 实现遮罩

Vue 实现遮罩层的方法 使用固定定位和透明背景 在Vue中实现遮罩层可以通过CSS固定定位结合透明背景色完成。创建一个全屏遮罩组件,利用position: fixed覆盖整个视窗。 <tem…

vue 实现报价

vue 实现报价

Vue 实现报价功能 在 Vue 中实现报价功能通常涉及前端表单交互、数据计算和与后端 API 的通信。以下是实现报价功能的几种常见方法: 表单设计与数据绑定 使用 Vue 的 v-model 指…

vue搜索功能实现

vue搜索功能实现

Vue搜索功能实现方法 在Vue中实现搜索功能可以通过多种方式完成,以下是几种常见的方法: 使用计算属性实现搜索 计算属性非常适合处理需要根据输入值动态过滤数据的情况。创建一个计算属性,根据搜索关键…

vue如何实现计算

vue如何实现计算

Vue 实现计算的方法 Vue 提供了多种方式来实现计算逻辑,包括计算属性、方法、侦听器等。以下是几种常见的实现方式: 计算属性(Computed Properties) 计算属性是基于它们的响应式…