后台管理系統使用Vue+element-UI
需求列表頁面分頁顯示,當跳轉到詳情頁面的時候,需要記錄當前的分頁數,方便返回的時候還留在詳情頁
①方案1 sessionStorage localstorage
缺陷如果點的並不是詳情頁而是別的頁面,再返回到列表頁的時候,默認是不會顯示第一頁的,而是顯示你記錄的頁數,跟我的需求不符合pass
但是在用sessionStorage的時候 遇到了一個奇怪的問題 在下面我會講解我遇到的坑
②路由傳參 該方案是Vue中不管做菜單的高亮回顯,還是分頁器都是不錯的方案
步驟就是在跳轉頁面的方法中傳遞一個query參數
this.$router.push({ name: 'DataEdit', query: { pageNum: this.pageInfo.pageNum } });
編輯頁面接收參數返回的時候攜帶該參數
var _pageNum = this.$route.query.pageNum if ( _pageNum ) { this.$router.push({ name: 'DataList', query: { pageNum: _pageNum } });
但是編輯頁面傳遞的這個參數在列表中的何處取值是個大問題,因為我就被這個問題折騰了一個小時,
原先我是在mounted鈎子函數中取這個值的,但是數據是變了,然而分頁按鈕並未顯示到正確的位置上。上面提到過我用sessionStorage是可以的,但也不完全正確
分頁面接收的pageNumber參數的類型是數字,而我傳的是String類型 所以用sessionStorage的方式放到mounted函數中雖然生效,但是控制台會有錯誤警告,用路由傳參的方式,換成了String類型是不行的,這個就很奇怪了,原理不得而知。
最后解決方法就是別放到mounted中取值,而是created鈎子中