vue中通常用vuex保存程序的状态,但是,刷新后往往状态就不在了。所以,页码、页长度等相关信息可以考虑采用其他形式保存。比如使用sessionStorage.
保存这些信息的方案是这样的,以当前路由为关键字,将页码、页长度等信息保存成一个Map。为了不过,由于session只能保存简单字符串,在保存的时候必须进行json转换。
具体代码如下:
created() {
console.log('当前:', this.currentPath)
let cs = sessionStorage.getItem(this.currentPath);
if (cs) {
this.status = JSON.parse(cs)
} else {
this.status.pageSize = 10;
this.status.currentPage = 1;
}
this.loadData();
},
创建的时候先读取,如果没有,就返回缺省值。
// 初始页currentPage、初始每页数据数pagesize和数据data
handleSizeChange: function (size) {
this.status.pageSize = size;
sessionStorage.setItem(this.currentPath, JSON.stringify(this.status));
this.loadData();
},
handleCurrentChange: function (currentPage) {
this.status.currentPage = currentPage;
sessionStorage.setItem(this.currentPath, JSON.stringify(this.status));
this.loadData();
},
翻页的时候,改变页长度的时候保存。