关于vue-router里history模式选择的问题
来源:4-4 添加配置 Vue Router
zhaobao1830
2021-02-22 09:26:02
问题描述:
为什么使用HTML5模式,而不是用hash模式?hash模式有什么缺点?(除了路径里有#丑以外)实际项目中这俩种模式的使用场景是什么?
1回答
同学你好
两者能够达到的目的是一样的,我本人更倾向于 HTML5 模式也就是 history 模式。一些优缺点的总结:
History 模式:
优点
使用简单,比较美观
pushState()
设置新的URL可以是任意与当前URL同源的URL,而hash只能改变#后面的内容,因此只能设置与当前URL同文档的URL
pushState()
设置的URL与当前URL一模一样时也会被添加到历史记录栈中,而hash#后面的内容必须被修改才会被添加到新的记录栈中
pushState()
可以通过stateObject
参数添加任意类型的数据到记录中,而hash只能添加短字符串
缺点
前端的URL必须和向发送请求后端URL保持一致,否则会报404错误
由于History API的缘故,低版本浏览器有兼容行问题
Hash 模式
优点
兼容低版本浏览器
只有#符号之前的内容才会包含在请求中被发送到后端,也就是说就算后端没有对路由全覆盖,但是不会返回404错误
缺点
会覆盖锚点定位元素的功能
不太美观,#后面传输的数据复杂的话会出现问题
相似问题
回答 1
回答 1