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