首页 > 其他 > 详细

不重新加载的情况下改变浏览器地址

时间:2020-03-17 23:05:19      阅读:71      评论:0      收藏:0      [点我收藏+]

我以前在学习/使用 vue-router 的时候不理解为什么浏览器地址发生了改变,浏览器却不用重新加载。

现在我可以把这个东西讲明白了,有两种方案可以实现改变 URL 但页面不进行整体的刷新。

hash 模式

location.hash = "foo"

可以通过直接赋值 location.hash 来改变 URL但页面不刷新

浏览器不会发送请求,使用 hash 改变 URL 后页面刷新会正常显示

history 模式

history.pushState({name: "Nicholas"},  "Nicholas‘ page",  "nicholas.html")

history.pushState()方法接收三个参数:状态对象(可以传一个空对象), 新状态的标题(可以传一个空字符串),相对URL

浏览器不会发送请求,使用 history.pushState() 改变 URL 后页面刷新会正常显示

history.replaceState({}, ‘‘, ‘demo‘)

接收的参数与 history.pushState() 方法一致

与 history.pushState 区别是 不会在历史状态栈中创建新状态,只会重写当前状态 (没有历史记录)。

 

不重新加载的情况下改变浏览器地址

原文:https://www.cnblogs.com/xiebenyin/p/12513645.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!