当前位置:首页 > VUE

vue结合后台实现分页

2026-02-23 07:01:43VUE

Vue 结合后台实现分页

后端接口设计

后端需要提供支持分页的接口,通常包含以下参数:

  • page: 当前页码
  • pageSize: 每页显示数量
  • 返回数据应包含分页信息,如总条数(total)、当前页数据(list)

示例接口响应格式:

{
  "code": 200,
  "data": {
    "total": 100,
    "list": [
      { "id": 1, "name": "Item 1" },
      { "id": 2, "name": "Item 2" }
    ]
  }
}

前端实现步骤

安装依赖

npm install axios

封装API请求

vue结合后台实现分页

// api.js
import axios from 'axios'

export const getPageData = (params) => {
  return axios.get('/api/data', { params })
}

Vue组件实现

<template>
  <div>
    <table>
      <tr v-for="item in tableData" :key="item.id">
        <td>{{ item.name }}</td>
      </tr>
    </table>

    <el-pagination
      @current-change="handleCurrentChange"
      :current-page="pagination.current"
      :page-size="pagination.size"
      :total="pagination.total">
    </el-pagination>
  </div>
</template>

<script>
import { getPageData } from './api'

export default {
  data() {
    return {
      tableData: [],
      pagination: {
        current: 1,
        size: 10,
        total: 0
      }
    }
  },
  created() {
    this.fetchData()
  },
  methods: {
    fetchData() {
      const { current, size } = this.pagination
      getPageData({ page: current, pageSize: size })
        .then(res => {
          this.tableData = res.data.list
          this.pagination.total = res.data.total
        })
    },
    handleCurrentChange(val) {
      this.pagination.current = val
      this.fetchData()
    }
  }
}
</script>

关键点说明

分页组件绑定 使用Element UI的el-pagination组件,绑定当前页码、每页大小和总条数,监听页码变化事件。

数据请求时机created钩子中初始化数据,页码变化时重新请求数据。

vue结合后台实现分页

参数传递 将当前页码和每页大小作为参数传递给后端接口。

优化建议

添加加载状态

<template>
  <el-pagination :disabled="loading" ... />
</template>

<script>
export default {
  data() {
    return {
      loading: false
    }
  },
  methods: {
    fetchData() {
      this.loading = true
      getPageData(...)
        .finally(() => {
          this.loading = false
        })
    }
  }
}
</script>

保存分页设置 将分页参数保存到vuex或localStorage,保持用户操作习惯。

错误处理 添加接口请求失败的处理逻辑,显示错误提示。

标签: 分页后台
分享给朋友:

相关文章

vue router实现分页

vue router实现分页

使用 Vue Router 实现分页 在 Vue.js 项目中,可以通过 Vue Router 结合分页组件实现分页功能。以下是实现分页的几种方法: 使用路由参数传递页码 在路由配置中定义一个动态参…

vue实现前端分页

vue实现前端分页

实现前端分页的方法 在Vue中实现前端分页通常需要结合数据截取和分页组件。以下是常见的实现方式: 基础实现方案 数据准备 定义总数据数组和分页相关变量: data() { return {…

vue实现滚动分页

vue实现滚动分页

实现滚动分页的基本思路 滚动分页(Infinite Scroll)是一种常见的前端分页加载方式,当用户滚动到页面底部时自动加载下一页数据。Vue 结合现代前端工具可以轻松实现这一功能。 监听滚动事件…

vue实现新闻分页

vue实现新闻分页

Vue 实现新闻分页的方法 数据准备与分页逻辑 在 Vue 中实现新闻分页需要准备新闻数据列表和分页参数。通常使用 data 属性存储当前页码和每页显示的新闻数量。 data() { retur…

vue 实现简单分页

vue 实现简单分页

Vue 实现简单分页的方法 基础分页组件实现 创建一个基础分页组件,包含页码按钮和翻页功能。以下是一个基于 Vue 3 的示例: <template> <div class="…

vue打印实现分页

vue打印实现分页

在Vue中实现打印分页功能 使用CSS分页控制 通过CSS的page-break属性控制打印时的分页行为。在需要分页的元素上添加以下样式类: .page-break { page-break-a…