利用sessionStorage存储页码和查询条件
- 定义接收所需上传sessionStorage数据的变量
steup(){
const requestParam = ref({})
}
- 初始化数据时,在列表数据接口请求之前,给变量requestParam赋上所需上传sessionStorage的值
// 实时更新需要存入sessionStorage的数据<br>
requestParam.value={
ProjectName: input2.value,
pageSize: limit.value,
pageNum: currPage.value
}
- 在所有的跳转到详情页的方法中将数据上传sessionStorage
const issee = val => {
sessionStorage.setItem("path", JSON.stringify(val));
sessionStorage.setItem('SESSION_PAGE_EXCECUTION', requestParam.value)
router.push({
name: "details",
params: val
});
};
【sessionStorage.setItem("名", 值)】:上传数据到sessionStorage
【JSON.stringify()】:将对象转换成字符串上传sessionStorage(对象必须转格式,否则不能上传)
【SESSION_PAGE_EXCECUTION】:相当于变量名,可任意
- 初始化数据时,在列表数据接口请求、给变量requestParam赋值之前,定义常量接收存入sessionStorage的值,并通过判断sessionStorage中是否存在之前存入的值,来确定是否给页码、每页条数、查询条件等变量重新赋值
const sessionRequest = JSON.parse(sessionStorage.getItem('SESSION_PAGE_EXCECUTION')) === null ? {} : JSON.parse(sessionStorage.getItem('SESSION_PAGE_EXCECUTION'))
if(Object.keys(sessionRequest).length){
currPage.value = sessionRequest.pageNum ? sessionRequest.pageNum : 1;
limit.value=sessionRequest.pageSize ? sessionRequest.pageSize : 10
input2.value=sessionRequest.ProjectName ? sessionRequest.ProjectName : ''
}
【sessionStorage.getItem("名")】:从sessionStorage中获取数据
【JSON.parse()】:将被转换成字符串上传的对象还原,在从sessionStorage中取值的时候进行
【Object.keys()】:返回⼀个由⼀个给定对象的⾃⾝可枚举属性组成的数组,数组中属性名的排列顺序和使用⽤ for...in 循环遍历该对象时返回的顺序⼀致
传⼊对象, 返回 包含对象可枚举属性和⽅法的数组:
var obj = {'name': 'xiaoming', 'age': 18};
console.log(Object.keys(obj));

- 当页码发生变化后,清除sessionStorage中所缓存的数据
//要求:需要在完成接口请求之后再清除
//原因:清除SESSION_PAGE_EXCECUTION对后续页码变化的影响
const handleCurrentChange = val => {
currPage.value = val
itemlist()
sessionStorage.removeItem('SESSION_PAGE_EXCECUTION')
}
- 在点击【搜索】或【重置】按钮时,需要对页码和每页信息条数进行重新赋值(赋默认值),并清除sessionStorage中缓存的SESSION_PAGE_EXCECUTION
const isselect = () => {
// 点击搜索的时候,需要重置页码和每页显示信息条数,并清除sessionStorage中存入的SESSION_PAGE_EXCECUTION
currPage.value=1
limit.value=10
sessionStorage.removeItem('SESSION_PAGE_EXCECUTION')
itemlist()
}