当前位置:首页 > VUE

vue router实现分页

2026-02-10 18:51:06VUE

Vue Router 实现分页的方法

使用 query 参数传递页码

在路由配置中无需特殊修改,直接通过 this.$router.push<router-link> 传递 query 参数:

// 跳转到第二页
this.$router.push({ path: '/list', query: { page: 2 } })

模板中使用:

<router-link :to="{ path: '/list', query: { page: pageNumber } }">
  第{{ pageNumber }}页
</router-link>

获取当前页码:

const currentPage = this.$route.query.page || 1

使用 params 参数传递页码

路由配置需要定义动态参数:

{
  path: '/list/:page',
  name: 'List',
  component: List
}

跳转时:

this.$router.push({ name: 'List', params: { page: 2 } })

获取参数:

const currentPage = this.$route.params.page || 1

结合分页组件实现

封装分页组件时监听路由变化:

watch: {
  '$route' (to, from) {
    this.fetchData(to.query.page || to.params.page || 1)
  }
}

保持页面状态

使用 keep-alive 缓存分页组件:

<keep-alive>
  <router-view></router-view>
</keep-alive>

滚动行为控制

在路由配置中添加滚动行为:

const router = new VueRouter({
  scrollBehavior (to, from, savedPosition) {
    if (savedPosition) {
      return savedPosition
    } else {
      return { x: 0, y: 0 }
    }
  }
})

分页数据获取

在组件中根据路由参数获取数据:

vue router实现分页

created() {
  this.fetchData(this.$route.query.page || 1)
},
methods: {
  fetchData(page) {
    axios.get(`/api/data?page=${page}`).then(response => {
      this.items = response.data
    })
  }
}

注意事项

  • 分页参数变化时需触发数据重新获取
  • 考虑使用防抖避免频繁请求
  • 路由参数需进行类型转换(字符串转数字)
  • 服务端需支持分页参数处理

以上方法可根据实际项目需求组合使用,query 方式适合简单分页,params 方式适合 SEO 友好的 URL 结构。

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

相关文章

vue实现app

vue实现app

Vue 实现 App 的常见方法 使用 Vue 开发移动端 App 主要有两种主流方案:混合开发(Hybrid)和原生渲染。以下是具体实现方式和工具链: 混合开发方案(WebView 嵌入) 通过…

vue实现级联

vue实现级联

Vue 实现级联选择器的方法 级联选择器(Cascader)是常见的表单组件,用于处理多层级联动数据选择(如省市区选择)。以下是几种实现方式: 基于 Element UI 的 el-cascader…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue能实现

vue能实现

Vue.js 是一个流行的前端框架,能够实现多种功能。以下是 Vue 能够实现的主要功能和特性: 响应式数据绑定 Vue 的核心特性之一是响应式数据绑定。通过数据驱动视图,当数据发生变化时,视图会自…

vue实现博客

vue实现博客

Vue 实现博客的基本步骤 使用 Vue.js 实现一个博客系统可以分为前端和后端两部分。以下是基于 Vue 的前端实现方案,后端可以选择 Node.js、Django 或其他框架。 项目初始化 使…

vue实现答题

vue实现答题

Vue 实现答题功能 数据结构设计 使用 Vue 的响应式特性管理题目和答案数据。通常需要以下数据结构: data() { return { questions: [ {…