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模式可能更适合你。

相关推荐
阿珊和她的猫10 分钟前
React中事件处理和合成事件:理解与使用
前端·react.js·前端框架
打小就很皮...14 分钟前
深入理解React Hooks:使用useState和useEffect
前端·react.js
小周同学:19 分钟前
CSS:怎么把网站都变成灰色
前端·css
发现你走远了29 分钟前
『VUE』elementUI dialog的子组件created生命周期不刷新(详细图文注释)
javascript·vue.js·elementui
225082490730 分钟前
【无标题】
javascript·vue.js·elementui
音仔小瓜皮31 分钟前
【bug记录10】同一iOS webview页面中相同的两个svg图标出现部分显示或全部不显示的情况
前端·bug·html5·xhtml·webview
涔溪1 小时前
css3弹性布局
前端·css·css3
Array[赵]1 小时前
npm 最新国内淘宝镜像地址源 (旧版已不能用)
前端·npm·node.js
于慨1 小时前
pnpm报错如Runing this command will add the dependency to the workspace root所示
前端·npm
李豆豆喵1 小时前
第29天:安全开发-JS应用&DOM树&加密编码库&断点调试&逆向分析&元素属性操作
开发语言·javascript·安全