当前位置:首页 > 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 实现toast

vue 实现toast

vue 实现 toast 的方法 在 Vue 中实现 Toast 提示功能可以通过多种方式,以下是几种常见的实现方法: 使用第三方库 Vue 生态中有许多成熟的 Toast 库,例如 vue-toa…

vue实现摘要

vue实现摘要

Vue 实现摘要的方法 在 Vue 中实现文本摘要功能通常涉及截取文本的前部分内容并添加省略号。可以通过计算属性、过滤器或自定义指令来实现。 计算属性实现 在 Vue 组件中定义一个计算属性,用于截…

django vue实现

django vue实现

Django与Vue.js整合实现方案 Django作为后端框架与Vue.js作为前端框架的整合,可以通过以下方式实现: 分离式开发 前后端完全分离,Django仅提供API接口,Vue.js通过a…

vue实现rtc

vue实现rtc

Vue 实现 RTC 的步骤 安装依赖 在 Vue 项目中安装 WebRTC 相关依赖,如 simple-peer 或 peerjs,用于简化 WebRTC 的实现。 运行以下命令安装 simple-…

vue实现看板

vue实现看板

Vue 实现看板功能 使用 Vue 实现看板功能可以通过组件化开发、状态管理和拖拽库结合完成。以下是一个完整的实现方案: 基础项目结构 src/ ├── components/ │ ├── Ka…

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…