当前位置:首页 > 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 组件中定义分页相关数据(当前页、每页条数、总条数等)和列表数据。

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 或直接在翻页事件中触发数据加载,确保参数变化时重新请求数据。

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 实现目录功能 在 Vue 中实现目录功能通常需要动态生成目录结构,并支持点击跳转到对应内容区域。以下是几种常见实现方式: 基于滚动监听和动态生成 安装依赖(如需): npm install…

vue如何实现注册

vue如何实现注册

实现用户注册功能 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是完整的实现方案: 创建注册表单组件 注册表单需要包含用户名、邮箱、密码等基本字段,并进行表单验证: <…

vue 实现拖拽

vue 实现拖拽

Vue 实现拖拽功能 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性和相关事件实现拖拽功能。 <template> &…

vue实现详情

vue实现详情

Vue 实现详情页的常见方法 使用动态路由 在 Vue Router 中配置动态路由参数,通过 $route.params 获取详情 ID。示例路由配置: { path: '/detail/:i…

vue实现suspense

vue实现suspense

Vue 3 中实现 Suspense Suspense 是 Vue 3 引入的一个内置组件,用于处理异步依赖的加载状态。它允许在等待异步组件或异步数据加载时显示一个后备内容(fallback),直到异…

vue实现全屏

vue实现全屏

Vue 实现全屏功能的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 do…