当前位置:首页 > VUE

vue实现新闻分页

2026-03-30 03:39:51VUE

实现新闻分页的步骤

后端API准备

确保后端提供分页查询接口,通常需要以下参数:

  • page: 当前页码
  • pageSize: 每页显示数量 接口返回格式应包含:
    {
    "data": [],
    "total": 100
    }

前端组件结构

使用Vue组件管理分页功能,核心结构:

<template>
  <div>
    <NewsList :list="newsData" />
    <Pagination 
      :current-page="currentPage"
      :total="total"
      @page-change="handlePageChange"
    />
  </div>
</template>

数据获取方法

在Vue组件中实现数据获取逻辑:

async fetchNews() {
  const res = await axios.get('/api/news', {
    params: {
      page: this.currentPage,
      pageSize: this.pageSize
    }
  })
  this.newsData = res.data.data
  this.total = res.data.total
}

分页组件实现

创建可复用的分页组件:

<template>
  <div class="pagination">
    <button 
      v-for="page in pageCount" 
      :key="page"
      @click="$emit('page-change', page)"
      :class="{ active: page === currentPage }"
    >
      {{ page }}
    </button>
  </div>
</template>

<script>
export default {
  props: {
    currentPage: Number,
    total: Number,
    pageSize: {
      type: Number,
      default: 10
    }
  },
  computed: {
    pageCount() {
      return Math.ceil(this.total / this.pageSize)
    }
  }
}
</script>

页面切换处理

在父组件中处理页码变更事件:

methods: {
  handlePageChange(page) {
    this.currentPage = page
    this.fetchNews()
  }
}

初始数据加载

在组件挂载时加载第一页数据:

mounted() {
  this.fetchNews()
}

样式优化

添加基础样式提升用户体验:

vue实现新闻分页

.pagination {
  display: flex;
  gap: 8px;
  margin-top: 20px;
}
.pagination button {
  padding: 5px 10px;
  cursor: pointer;
}
.pagination button.active {
  background-color: #42b983;
  color: white;
}

性能优化建议

  • 添加加载状态提示
  • 实现防抖处理快速翻页
  • 考虑添加路由同步保持页面状态
  • 对空数据状态进行处理

标签: 分页新闻
分享给朋友:

相关文章

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

vue前端实现分页

vue前端实现分页

实现分页的基本思路 在Vue中实现分页通常需要结合后端API返回的数据和前端的分页组件。核心逻辑包括计算总页数、处理当前页码变化以及动态加载数据。 使用Element UI的分页组件 Element…

vue实现分页组件

vue实现分页组件

Vue 分页组件实现 基础分页组件结构 创建一个名为 Pagination.vue 的文件,包含以下基础模板和逻辑: <template> <div class="pa…

vue 实现分页效果

vue 实现分页效果

使用 Element UI 实现分页 Element UI 提供了现成的分页组件 el-pagination,适合快速集成到 Vue 项目中。 安装 Element UI: npm install…

vue分页的实现

vue分页的实现

Vue 分页的实现方法 使用 Element UI 的分页组件 安装 Element UI: npm install element-ui 在 main.js 中引入: import Elemen…

vue打印实现分页

vue打印实现分页

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