大家好,关于深入解析:HashHistory与BrowserHistory的区别及应用场景很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
browserHistory 存在浏览器兼容性问题。 browserHistory使用window.history对象中的pushState和replaceState方法。这两个方法是HTML5中新的history API,并不是所有浏览器都支持。
browserHistory 需要服务器端支持。当子页面被刷新或者其他人通过复制子页面的路由地址再次访问时,就会向服务器发送请求。传递给服务器的请求地址是子页面对应的路由地址,服务器也必须做相应的Parse并返回前端页面。由于hashHistory将路由地址放在哈希值中,请求服务器时会忽略URL中的哈希值,因此服务器只需要处理首页的请求地址,不需要做其他处理。
hashHistory不能设置强制更新模式。 hashHistory的路由地址放在hash值中,通过window.position.hash修改hash值不会触发浏览器刷新页面,所以hashHistory无法设置强制更新模式,但browserHistory可以。
hashHistory可以设置哈希模式hashType。 hashType有三个枚举值,分别是“slash”、“noslash”和“hashbang”,默认是“slash”,可以。当值为“slash”时,哈希符号“#”后面会跟“/”;当值为“noslash”时,“#”后面没有“/”;当值为“hashbang”时,“#”将连接到“!”和“/”,这样搜索引擎在抓取URL时,会抓取URL中的hash来获取更全面的信息。
hashHistory只能从hashHistory.location.state读取状态值,而不能从window.history.state读取状态值。历史库的第4 版不建议在hashHistory 中使用状态,尽管状态可以通过位置对象传递。但作为页面级状态,它不具备持久化状态的能力,因为window.location对象没有保存状态的方法。当浏览器返回然后转发到该页面时,从hashHistory.location.state 读取的值将为空,browserHistory 可以再次读取状态值。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
【深入解析:HashHistory与BrowserHistory的区别及应用场景】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于了解了为什么用hashHistory和browserHistory后页面表现会不同!
有18位网友表示赞同!
学习前端历史我一直觉得这两个概念很绕脑,这篇文章解释得真好!
有16位网友表示赞同!
我之前一直傻傻分不清这两个东西,谢谢这个有用的对比讲解。
有20位网友表示赞同!
做SPA的时候经常用到,这下明白了选择哪种模式的优缺点。
有11位网友表示赞同!
用过hashHistory和browserHistory的项目,果然它们在导航上表现不一样啊!
有18位网友表示赞同!
原来还有这种区别啊!看来以后要好好研究下浏览器历史的机制。
有20位网友表示赞同!
很实用的一篇文章,对学习react-router非常有帮助!
有20位网友表示赞同!
我需要用到这些知识点做一些小项目,这个解释刚好能帮到我。
有10位网友表示赞同!
原来hashHistory会导致URL栏出现 "#" 符号,这样不太美观啊...
有7位网友表示赞同!
看这篇解释后感觉browserHistory更符合浏览器行为规范,好用!
有13位网友表示赞同!
需要学习这方面知识了,看来以后做单页应用就灵活多了。
有20位网友表示赞同!
终于明白了为什么有些网站地址不带#符号,原来是浏览器历史的原因!
有13位网友表示赞同!
这篇文章讲解得很清晰易懂,即使没有前端基础也能看明白。
有8位网友表示赞同!
作为一名新手入门者,学习这些非常重要!
有12位网友表示赞同!
对网页开发很有帮助,特别是对于做单页应用的同学来说。
有19位网友表示赞同!
浏览器历史真是个神奇的东西,学起来挺有趣!
有15位网友表示赞同!
这个知识点以后可以用到很多场景里去,真棒!
有18位网友表示赞同!
分享给我的小伙伴们,他们也在学习前端开发。
有7位网友表示赞同!
感谢作者的辛苦付出,让我们更容易理解这些技术概念!
有13位网友表示赞同!