浏览器返回机制,项目中使用Element -ui Pagination 分页 遇到的坑!!!

787 阅读1分钟

问题描述:当使用Pagination分页组件时,在底部切换页码进入单个商品详情页,点击浏览器后退或者返回按钮,重新加载了当前路由,并未保留进入之前的页码,返回第一页,期望保留进入的页面

解决办法:思路是在进入商品详情页之前记录当前页码保存在sessionStorage,返回时页面加载判断当前页码并且销毁

在页面子组件传入current,并在子组件props接收current:Number

<single v-for="(obj,index) in this.list" :key="index" :obj="obj" :current="current"/>

子组件去详情页时保存页码信息

sessionStorage.setItem("currentPage",this.current);

父组件绑定所有页码:

current: Number(sessionStorage.getItem('currentPage')) ?  Number(sessionStorage.getItem('currentPage'))  : 1,

在详情页面返回的时候销毁

//返回按钮
back() { this.$router.back(-1)},
//销毁函数
destroyed(){    
    if(sessionStorage.getItem('currentPage')){      
        sessionStorage.removeItem('currentPage')    
    }  
},