news 2026/6/23 2:32:24

Vue2 编辑返回保留分页页码解决方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue2 编辑返回保留分页页码解决方案

Vue2 编辑返回保留分页页码解决方案

问题根源

this.$router.back()只是单纯回退历史记录,列表页分页、搜索筛选、页码是存在组件 data 里的,路由回退后组件会重新加载,丢失之前分页状态。

四种主流方案(按推荐程度排序)

方案1:路由传参(最简单,无需缓存)

1. 列表页跳转编辑时,带上当前分页参数

// 列表页 点击编辑handleEdit(row){constpage=this.pageNum;// 当前页码constsize=this.pageSize;// 每页条数this.$router.push({path:`/product/edit/${row.id}`,query:{page,size}// 把分页存在query})}

2. 编辑页保存时,携带页码返回列表

// 编辑确认按钮asyncsubmit(){awaitapi.save(this.form);// 获取跳转过来时携带的分页参数const{page,size}=this.$route.query;if(page){// 跳回列表并带上分页,自动加载对应页this.$router.push({path:'/product/list',query:{page,size}})}else{this.$router.back();}}

3. 列表页 created 读取 query 恢复分页

created(){// 路由带分页则赋值if(this.$route.query.page){this.pageNum=Number(this.$route.query.page);this.pageSize=Number(this.$route.query.size);}this.getList();// 重新请求对应页码数据}

优点:简单无副作用;缺点:url会拼接分页参数

方案2:keep-alive 缓存列表组件(最优体验)

页面不会重新请求,直接保留上次滚动、分页、筛选状态

1. 路由配置开启缓存

<!-- App.vue / 路由出口 --> <router-view v-if="$route.meta.keepAlive" keep-alive></router-view> <router-view v-else></router-view>

2. router/index.js 给列表路由加标记

{path:'/product/list',name:'ProductList',component:ProductList,meta:{keepAlive:true}// 标记需要缓存},{path:'/product/edit/:id',component:ProductEdit}

3. 编辑完成直接回退即可

submit(){awaitsaveApi();this.$router.back();// 列表组件被缓存,页码数据全部保留}

补充:如果需要编辑完强制刷新列表

监听activated钩子,判断是否从编辑页返回:

// ProductList.vueactivated(){// 判断上一页是编辑页,刷新数据if(this.$route.meta.fromEdit){this.getList();this.$route.meta.fromEdit=false;}}

跳转编辑时打标记:

handleEdit(){this.$route.meta.fromEdit=true;this.$router.push(`/product/edit/${id}`)}

方案3:Vuex / Pinia 存储分页状态(多页面共用)

适合多处进入编辑、需要全局保存分页

  1. store 定义分页变量
state:{productPage:{pageNum:1,pageSize:10}},mutations:{setProductPage(state,payload){state.productPage=payload}}
  1. 列表每次请求前更新store
this.$store.commit('setProductPage',{pageNum:this.pageNum,pageSize:this.pageSize})
  1. 列表 created 读取store恢复
created(){constpage=this.$store.state.productPage;this.pageNum=page.pageNum;this.pageSize=page.pageSize;this.getList();}

方案4:本地存储 localStorage(刷新页面也不丢失)

// 列表切换页码时保存changePage(){localStorage.setItem('productPage',JSON.stringify({pageNum:this.pageNum,pageSize:this.pageSize}))this.getList()}// 列表初始化读取created(){constcache=localStorage.getItem('productPage');if(cache){const{pageNum,pageSize}=JSON.parse(cache);this.pageNum=pageNum;this.pageSize=pageSize;}this.getList();}

推荐组合使用方案(项目通用)

  1. 列表路由加keepAlive缓存,返回直接保留分页,体验最好
  2. 如需编辑后刷新列表,搭配路由meta标记,在activated重新请求接口
  3. 若页面复杂、多入口跳转,补充路由query兜底

踩坑提醒

  1. this.$router.back()无法携带参数,单纯回退一定会丢失组件内数据,不要只用back
  2. keep-alive 缓存后created不会再次执行,改用activated处理刷新逻辑
  3. 分页参数一定要转数字,query获取的是字符串,请求接口会报错
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 2:17:30

2026年光谱照度计技术解析与实战选型指南

在照明品质、光生物安全、植物工厂和显示技术快速迭代的2026年&#xff0c;一台精准可靠的光谱照度计已成为实验室和产线不可或缺的检测工具。无论是在LED照明产品的色温与显色指数管控&#xff0c;还是植物工厂中精准补光的PAR测量&#xff0c;光谱照度计都承担着“光之标尺”…

作者头像 李华
网站建设 2026/6/23 2:17:19

ACE-Step UI终极指南:免费开源AI音乐生成神器

ACE-Step UI终极指南&#xff1a;免费开源AI音乐生成神器 【免费下载链接】ace-step-ui &#x1f3b5; The Ultimate Open Source Suno Alternative - Professional UI for ACE-Step 1.5 AI Music Generation. Free, local, unlimited. Stop paying for Suno! 项目地址: http…

作者头像 李华
网站建设 2026/6/23 2:13:39

KDash终极实战指南:10个高效监控Kubernetes集群的深度技巧

KDash终极实战指南&#xff1a;10个高效监控Kubernetes集群的深度技巧 【免费下载链接】kdash A simple and fast dashboard for Kubernetes 项目地址: https://gitcode.com/gh_mirrors/kd/kdash KDash是一款基于Rust构建的轻量级Kubernetes终端仪表盘&#xff0c;专为开…

作者头像 李华
网站建设 2026/6/23 1:49:37

产品经理视角:如何用“用户旅程地图”选一家靠谱民宿?

产品经理视角&#xff1a;如何用“用户旅程地图”选一家靠谱民宿&#xff1f; 前言&#xff1a; 做产品经理久了&#xff0c;看什么都像在做需求分析。上周带家属去桐庐度周末&#xff0c;选民宿的时候&#xff0c;我下意识地把这个过程拆成了标准的产品选型流程——定义用户画…

作者头像 李华
网站建设 2026/6/23 1:48:23

DeepSeek Harness 部门急缺人才,崔添翼直聘三类岗位,速来!

DeepSeek Harness 部门急缺人才&#xff0c;崔添翼直聘三类岗位&#xff0c;速来&#xff01;DeepSeek 好缺 Agent 人才啊…… 刚刚&#xff0c;Harness 部门负责人崔添翼再次在线直聘&#xff1a;Harness 部门空缺较大&#xff0c;速来&#xff01;这次一口气放出来的岗位有三…

作者头像 李华
网站建设 2026/6/23 1:33:58

SC7A20 三轴数字加速度传感器 原理与实现流程

一、传感器工作原理 1.1 核心原理 SC7A20 是一款基于 MEMS(微机电系统) 技术的三轴加速度传感器,采用电容检测原理: ┌─────────────────────────────────────────────────────────┐ │ SC7A20…

作者头像 李华