History API通过pushState/replaceState实现无刷新URL修改与历史管理,支持SPA路由、搜索关键词同步、画廊分页及表单步骤导航,需监听popstate恢复状态并注意同源限制。
History API 允许网页在不刷新页面的前提下修改浏览器地址栏的 URL,并操控会话历史记录,核心用途是实现单页应用(SPA)中的无刷新路由跳转和用户体验优化。
使用 history.pushState() 或 history.replaceState() 可更新地址栏,同时保存状态对象。两者区别在于:pushState 会在历史栈中新增一条记录,replaceState 则替换当前记录。
/product/123
监听 popstate 事件,即可捕获用户点击前进、后退或调用 history.back() 等操作:
event.state 获取之前存入的状态对象,用于恢复页面视图或数据可通过 history.length 查看当前会话的历史条目数,用 history.state 读取当前条目的状态对象(仅限 push/replace 设置过的)。
history.pushState({page: 'test'}, '', '?debug=1') 快速测试location.pathname 和 U
RLSearchParams 解析 URL,实现基于路径的路由分发History API 是现代前端路由的基础支撑,典型应用包括:
/search?q=笔记本)/gallery/5,支持直接分享或刷新访问