当前位置:首页 > VUE

vue router实现分页

2026-01-14 02:11:28VUE

使用 Vue Router 实现分页

在 Vue.js 项目中,可以通过 Vue Router 结合分页组件实现分页功能。以下是实现分页的几种方法:

使用路由参数传递页码

在路由配置中定义一个动态参数来传递页码:

// router/index.js
const routes = [
  {
    path: '/items/:page',
    name: 'Items',
    component: () => import('../views/Items.vue'),
    props: true
  }
]

在组件中通过 props 接收页码:

// Items.vue
export default {
  props: {
    page: {
      type: [String, Number],
      default: 1
    }
  },
  watch: {
    page(newVal) {
      this.fetchData(newVal)
    }
  },
  methods: {
    fetchData(page) {
      // 根据页码获取数据
    }
  }
}

使用查询参数传递页码

另一种方式是通过查询参数传递页码:

// 跳转到指定页码
this.$router.push({ path: '/items', query: { page: 2 } })

在组件中通过 this.$route.query.page 获取页码:

// Items.vue
export default {
  watch: {
    '$route.query.page'(newVal) {
      this.fetchData(newVal)
    }
  }
}

结合分页组件

在模板中使用分页组件,并绑定到路由:

<template>
  <div>
    <!-- 数据列表 -->
    <ul>
      <li v-for="item in items" :key="item.id">{{ item.name }}</li>
    </ul>

    <!-- 分页组件 -->
    <Pagination 
      :current-page="parseInt($route.params.page) || 1"
      :total-pages="totalPages"
      @page-changed="onPageChange"
    />
  </div>
</template>

分页组件的实现:

// Pagination.vue
export default {
  props: {
    currentPage: Number,
    totalPages: Number
  },
  methods: {
    onPageChange(page) {
      this.$router.push(`/items/${page}`)
    }
  }
}

处理初始加载

确保组件在初始加载时也能获取数据:

// Items.vue
export default {
  created() {
    this.fetchData(this.$route.params.page || 1)
  }
}

分页样式和逻辑

分页组件可以包含常见的分页样式和逻辑:

<template>
  <div class="pagination">
    <button 
      v-for="page in pages" 
      :key="page"
      :class="{ active: page === currentPage }"
      @click="onPageChange(page)"
    >
      {{ page }}
    </button>
  </div>
</template>

通过以上方法,可以在 Vue Router 中实现分页功能,同时保持 URL 与页面状态的同步。

vue router实现分页

标签: 分页vue
分享给朋友:

相关文章

vue实现atm

vue实现atm

Vue实现ATM机模拟功能 使用Vue.js实现ATM机模拟功能需要结合组件化开发、状态管理以及用户交互逻辑。以下是关键实现步骤: 核心组件结构 创建以下Vue组件构建ATM界面: Car…

vue实现多级组件

vue实现多级组件

实现多级组件的基本结构 在Vue中实现多级组件通常涉及父子组件嵌套,通过props向下传递数据,通过$emit向上传递事件。多级组件的核心是递归或动态组件渲染。 <!-- 父组件 Parent…

拖拽式编程vue实现

拖拽式编程vue实现

拖拽式编程在 Vue 中的实现方法 使用 HTML5 原生拖放 API Vue 可以结合 HTML5 的拖放 API 实现基础拖拽功能。通过 draggable 属性标记可拖拽元素,监听 dragst…

vue实现文字播放栏

vue实现文字播放栏

Vue 实现文字播放栏(跑马灯效果) 方法一:使用 CSS 动画 + Vue 数据绑定 通过 CSS 的 @keyframes 实现动画效果,结合 Vue 的动态数据绑定控制内容。 <t…

vue实现无线滚动列表

vue实现无线滚动列表

无限滚动列表的实现方法 在Vue中实现无限滚动列表通常结合监听滚动事件和动态加载数据。以下是几种常见方法: 使用自定义指令 创建自定义指令v-infinite-scroll监听滚动事件: Vu…

vue实现安全免登录

vue实现安全免登录

Vue 实现安全免登录的方案 免登录功能通常通过持久化认证状态(如 Token)实现,但需兼顾安全性。以下是基于 Vue 的常见实现方案: 基于 Token 的免登录 登录成功后存储 Token…