修改 url 但页面不刷新的方法

时间:2025-03-20 09:09:55

pushState与replaceState

想要修改当前页面的 url,又不想刷新页面,首推 pushState与replaceState 这对姐妹花!

下面就来好好介绍一下它们俩:

特性

都属于 HTML5 的新特性,由于功能强大,可以做到改变 url 且不需要刷新页面,所以经常在单页应用中使用:vue-router, react-router-dom。

相同点

参数

  • data(any):存储JSON字符串,可以用在popstate事件中;
  • title(string):现在大多数浏览器不支持或者忽略这个参数;
  • url?(string | null | undefined): 有效的URL,需要注意的是必须与当前页面处在同一个域。

不同点

  • pushState:是在history栈中新建一个历史记录;
  • replaceState:是在history栈中替换当前记录;