当前位置:首页 > 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;
}

性能优化建议

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

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

相关文章

vue实现新闻

vue实现新闻

Vue 实现新闻功能的核心方法 新闻数据获取与渲染 使用 Axios 或 Fetch API 从后端接口获取新闻数据,通过 v-for 指令循环渲染新闻列表。示例代码展示数据获取和模板绑定方式: /…

js 实现分页

js 实现分页

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

jquery 分页

jquery 分页

实现 jQuery 分页的方法 客户端分页实现 使用 jQuery 实现客户端分页的核心思路是通过 JavaScript 控制数据的显示与隐藏。假设有一个包含数据的 HTML 列表或表格: // 分…

vue分页插件实现

vue分页插件实现

Vue 分页插件实现方法 使用现成组件库(推荐) Element UI、Ant Design Vue 等主流库已提供成熟分页组件,可直接集成: <template> <…

vue实现分页缩进

vue实现分页缩进

vue实现分页缩进的方法 使用v-for和计算属性实现分页 通过计算属性对数据进行分页处理,结合v-for渲染分页数据。计算属性根据当前页码和每页显示数量对原始数据进行切片。 computed: {…

vue搜索分页实现

vue搜索分页实现

Vue 搜索分页实现方法 基本思路 搜索分页通常需要结合后端API,前端通过Vue组件实现搜索框、分页器和数据列表的联动。核心逻辑包括:监听搜索输入变化、分页参数变化,触发数据请求并更新视图。 实现…