页面刷新,想要解决在页面恢复到当前所在的页面或者滑动的位置等问题,需要先记录当前页面的信息,记录信息的方式有多种,例如常见见的cookie、localStorage 和 sessionStorage、url等等,我这使用的是url进行记录。
import Qs from 'qs';
const searchChange = (key, value) => {
if(!key || value) return;
let search = Qs.parse(window.location.search.slice(1));
window.history.replaceState(null,null,`?${Qs.stringify({ ...search, key: value })}`);
}
Qs.parse解析queryStrihng,Qs.stringify将该类型合并为string类型字符串;利用queryString这种形式解析处理该类型的字符串具有更好的可读性。
url组成部分参考:JavaScript获取URL的各组成部分 -- 简明现代魔法