js更新地址栏,但是不刷新页面

本文讨论了如何在不刷新页面的情况下,通过状态管理工具更新地址栏,同时保留筛选条件,利用`history.pushState`和`history.replaceState`方法处理浏览器记录,以及处理已有参数的问题,以实现特定的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一下第一次遇到更新地址栏但是不刷新页面的需求

有时候会遇到一些需求,比如复制地址,分享给别人 希望也保留筛选条件,但是之前做的时候筛选条件存储到的状态管理工具里面了,地址栏没有,所以为了更快的实现效果,可以通过筛选时把条件更新到地址栏上,但是不触发刷新,这样就可以了

// 更新后,地址存储到浏览器记录栈中(点击返回回返回更新地址栏前的地址,同history.push)
history.pushState(null, null, searchUrl);

// 更新后,地址替换掉当前在浏览器记录栈中的地址(点击返回回返回上一页的地址,同history.replace)
history.replaceState(null, null, searchUrl);
在这里插入图片描述
当前地址栏已经携带有部分参数了,所以我们需要先把已经携带的参数拿到,然后频道serachUrl中
在这里插入图片描述
筛选后,地址栏变成这种效果
在这里插入图片描述
因为存储到开始时间和结束时间,所以需要将字符串拼接成数组
在这里插入图片描述

searchUrl 是 地址栏?及?后面的信息,
我这个需求 第一个和第二个参数直接传null就可以了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值