Vue3 中 createWebHistory 和 createWebHashHistory 的区别

devtools/2024/10/22 18:29:01/

createWebHistory

  • 创建方式: 使用 createWebHistory 函数来创建基于 HTML5 History API 的路由
import { createRouter, createWebHistory } from 'vue-router'
import Home from '@/views/Home.vue'
import About from '@/views/About.vue'const router = createRouter({history: createWebHistory(),routes: [{path: '/home',name: 'home',component: Home},{path: '/about',name: 'about',component: About}]
})  
  • 使用方式: 在大多数现代浏览器中,使用标准的 URL 格式,没有 # 符号。
  • 在浏览器中的显示方式: 显示为常规的 URL,例如https://mp.csdn.net/mp_blog/manage/article

缺点:
服务器配置: 需要服务器配置来处理所有路由请求,以便正确地返回 index.html 文件,以便在客户端渲染应用程序。
刷新时问题: 刷新页面时,如果服务器不正确配置,会导致 404 错误,因为服务器无法找到对应的路由

  • 优化方式:
    服务器配置: 需要在服务器上进行配置,以确保在路由请求时正确地返回 index.html 文件。例如,在使用 Nginx 时,可以使用 try_files 指令。
    历史模式兼容性: 如果考虑兼容性,可以使用 createWebHashHistory 替代,不需要特殊的服务器配置。

createWebHashHistory

  • 创建方式: 使用 createWebHashHistory 函数来创建基于 URL 哈希的路由
import { createRouter, createWebHashHistory } from 'vue-router'
import Home from '@/views/Home.vue'
import About from '@/views/About.vue'const router = createRouter({history: createWebHashHistory(),routes: [{path: '/home',name: 'home',component: Home},{path: '/about',name: 'about',component: About}]
})
  • 使用方式: 在 URL 中使用 # 符号来表示路由
  • 在浏览器中的显示方式: URL 中会包含 # 符号,例如https://mp.csdn.net/mp_blog/manage/#/article
    缺点:
    丑陋的 URL: URL 包含 # 符号,看起来较为丑陋。
    SEO 问题: 对于搜索引擎优化不友好,因为搜索引擎不会解析 # 符号后的内容。
  • 优化方式:
    美化 URL: 可以通过其他技术手段(如路由别名)来美化 URL,减少 # 符号的影响。
    服务端渲染: 如果考虑 SEO,可以考虑使用服务端渲染来解决 SEO 问题,但这会增加应用程序的复杂性。
    (使用 Thymeleaf 模板引擎配合Spring Boot 的优化渲染)

http://www.ppmy.cn/devtools/10558.html

相关文章

项目记录:一个C语言模拟操作系统的程序(1)

记录一个我的C语言做的非常简单的小项目,本大冤种帮一个上大一的远房堂弟(不知道叫堂还是表了,反正是我妈亲戚家的)做的课程设计,要求做的是一个字符图形界面的操作系统模拟。等他答辩完,无偿贡献给大家~给…

AWS账号注册以及Claude 3 模型使用教程!

哈喽哈喽大家好呀,伙伴们!你听说了吗?最近AWS托管了大热模型:Claude 3 Opus!想要一探究竟吗?那就赶紧来注册AWS账号吧!别担心,现在注册还免费呢!而且在AWS上还有更多的大…

idea显示maven或者gradle无法从仓库获取到项目中的jar包,jar包所在仓库无法访问解决方法,百试百灵

**idea显示maven或者gradle无法从仓库获取到项目中的jar包,jar包所在仓库无法访问解决方法,百试百灵** 直接上图,大概的故障问题就是:idea导入新的项目,因为项目中很多的jar需要从远程仓库下载,但是远程仓库…

【Python-Pygame】

Python-Pygame ■ Pygame-简介■ Pygame-安装■ Pygame-Rect区域位置■ Pygame-Draw绘图函数■ Pygame-■ Pygame-■ Pygame-■ Pygame-事件监听■ Pygame-Event事件模块■ Pygame-游戏循环■ Pygame-Display显示模块■ Pygame-Time时间控制■ Pygame-Font文本和字体■ Pygame-…

IS62LV256AL-45ULI功能参数介绍及如何优化电源稳定性以适应

IS62LV256AL-45ULI功能参数介绍-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 制造商:ISSI 产品品种:静态随机存取存储器 RoHS:是 存储容量:256 kbit 组织:32 k x 8 拜访时刻:45 ns 接口类型:Parallel 电源电压-最大:3.63 V 电源电压-最小:2.97 V 电源电流—最大值:5…

[Android]Jetpack Compose设置颜色

在 Kotlin 和 Jetpack Compose 中设置颜色是一个非常直接的过程,涉及到使用 Color 类来定义和使用颜色。 Jetpack Compose 提供了多种方式来定义和应用颜色,包括预定义颜色、RGB 值、十六进制值等。下面是一些常用的设置颜色的方法: 1. 使用…

tensorflow list_files需要注意的点

tensorflow 读取tfrecord的时候 list_files几乎是避不开的函数,在tensorflow的官方文档中写了,list_files 支持正则表达式。 但是这里面有个比较坑的点:我们点开list_files的源码,会发现调用了gen_io_ops.matching_files。这个是t…

【C语言小项目001期】随机数生成器

作品介绍: 随机数生成器是一个简单而实用的程序,它允许用户生成指定数量和范围内的随机数。该程序采用C语言编写,界面友好,操作简便,适合各种需要随机数的场景。 功能特点: 用户交互:程序通过…