1.需求说明
要求:跳转页面后点击返回,仍然保留表格的筛选条件:搜索值、页码、每页几条。
操作表格数据后,点击返回后仍然保留原来的查询条件
- 页面中有搜索框、表格、分页 3 个组件
- 表格每条数据有操作列,例如:点击
详情
,就会跳转到另一个页面- 表格数据筛选条件为:搜索值 + 当前页码 + 每页几条数据
页面大概长这样:
2.实现的步骤
- 该页面创造时从 sessionStorage 中读取先前保存的
筛选条件
- 如果该
筛选条件
存在就把它取出来,作为查询条件- 该页面被销毁前保留
筛选条件
到 sessionStorage
第一步:该页面创造时从 sessionStorage 中读取先前保存的 筛选条件
// 大家无需关心变量名称,只需观察中文注释即可
created() {
// 1、获取之前的查询条件(需要JSON.parse()将其转为对象)
const searchCondition = JSON.parse(window.sessionStorage.getItem('searchCondition'))
if (searchCondition) {
// 2、若存在,则覆盖初始查询条件
this.condition = searchCondition.searchValue // 这里是搜索框的值
this.pagination = Object.assign(this.pagination , searchCondition.searchPage) // 这里包含 当前页码 和 每页几条
}
this.getTableList() // 这里是查询数据的函数
},
第二步:它在 sessionStorage 中大概长这样
第三步:该页面被销毁前保留 筛选条件 到 sessionStorage
beforeDestroy() {
// 1、设置搜索条件
const searchCondition = {
searchValue: this.condition, // 这是当前的搜索值
searchPage: {
current: this.pagination.current, // 这是当前的页码
limit: this.pagination.limit // 这是当前的每页几条
}
}
// 2、把它存储到 sessionStorage (使用JSON.stringify()将其转化为字符串)
window.sessionStorage.setItem('searchCondition', JSON.stringify(searchCondition))
}
到此为止已经实现了:跳转页面后再返回,仍然保留查询条件。
如果还想要判断从哪个页面进来的,可以结合路由守卫的 from , to 判断是否触发条件回显。