vue路由的几种模式。有什么区别

hash模式。

url上面会有#

hash模式的主要原理就是onhashchange()事件,表现就是修改#后面的内容不会向服务器发送http请求,因此也不会重新加载页面。

hash 模式打包后,直接在浏览器中打开 /dist/index.html 可以正常的访问

Hash模式的优点在于它兼容性好,可以在所有现代浏览器中工作,而不需要进行任何特殊处理。然而,它的缺点也很明显,那就是URL中包含了#符号,这在某些情况下可能会破坏URL的美观性,同时也不利于搜索引擎的优化(SEO)


history模式 。

url没有#。

History模式则利用了HTML5的History API来实现路由的切换。但是需要后端配合添加一些配置(配置服务器来正确返回你的index.html)。否则页面刷新会报404.(遇到的一个情况就是:

history模式vue项目打包文件之后 npm run build 出现dist包,里面就是单页面 index.html ,部署项目之后 我们点击路由 不会发生错误 但是如果刷新就会显示404,)

基于HTML5 History API :pushState和replaceState 这两个方法应用于浏览器的历史记录栈,提供了对历史记录进行修改的功能。修改url的时候会向服务端发出请求。

history 模式打包后,直接在浏览器中打开 /dist/index.html 会报错

History模式的缺点在于它的兼容性不如Hash模式。在一些老旧的浏览器中,History API可能不被支持,导致路由切换无法正常工作。因此,在使用History模式时,我们需要做好充分的兼容性处理,以确保在所有浏览器中都能获得良好的用户体验。


总的来说,Hash模式和History模式各有优缺点,选择哪种模式主要取决于你的应用需求和目标用户。如果你的应用需要兼容所有现代浏览器,并且对URL的美观性要求不高,那么Hash模式可能是一个更好的选择。而如果你的应用需要更好的用户体验和SEO效果,并且你的目标用户主要使用较新的浏览器,那么History模式可能更适合你。

相关推荐
GISer_Jing11 分钟前
前端面试通关:Cesium+Three+React优化+TypeScript实战+ECharts性能方案
前端·react.js·面试
落霞的思绪1 小时前
CSS复习
前端·css
咖啡の猫3 小时前
Shell脚本-for循环应用案例
前端·chrome
百万蹄蹄向前冲5 小时前
Trae分析Phaser.js游戏《洋葱头捡星星》
前端·游戏开发·trae
朝阳5816 小时前
在浏览器端使用 xml2js 遇到的报错及解决方法
前端
GIS之路6 小时前
GeoTools 读取影像元数据
前端
ssshooter7 小时前
VSCode 自带的 TS 版本可能跟项目TS 版本不一样
前端·面试·typescript
你的人类朋友7 小时前
【Node.js】什么是Node.js
javascript·后端·node.js
Jerry7 小时前
Jetpack Compose 中的状态
前端
dae bal8 小时前
关于RSA和AES加密
前端·vue.js