Vue3 中 createWebHistory 和 createWebHashHistory 的区别

news/2024/10/22 18:37:21/

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/news/1436834.html

相关文章

4 -25

1 100个英语单词两篇六级阅读 2 cf补题; 3 仿b站项目看源码 debug分析业务。 上了一天课,晚上去健身。 物理备课,周六去上课腻。 五一回来毛泽东思想期末考试,概率论期中考试。

dns高防和ip高防的区别是什么?

在面对日益增长的网络安全威胁时,DNS高防和IP高防作为防御策略发挥着重要的作用。虽然两者都旨在保护网络资源免受攻击,但它们在操作方式和防护重点上有着本质的不同。 DNS高防:保护域名解析服务DNS高防,全称是高防御的域名解析服…

论文精读--Learning Efficient Object Detection Models with Knowledge Distillation

在目标检测任务中,存在特殊的挑战: (1)目标检测任务标签信息量更大,根据标签学到的模型更为复杂,压缩后损失更多 (2)分类任务中,每个类别相对均衡,同等重要…

9(第八章,数据集成和互操作)

目录 概述 实体识别 冗余属性识别 基本概念 抽取、转换、加载(ETL) ETL和ELT的区别 时延 数据加载方法 数据集成和互操作架构概念 活动 度量指标 其他 集成中的一些定义 集成概述 技术架构 集成方式 概述 数据集成和互操作(…

刷题DAY60 | LeetCode 84-柱状图中最大的矩形

84 柱状图中最大的矩形(hard) 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 思路:1.双指针法 2. 单调栈 详细解…

硬件知识学习 电感

1.电感的作用: 电感在电路中扮演着多样化的关键角色,其作用相当复杂且精细。以下是对电感作用的更详细解释: 滤波作用: 高频噪声抑制:电感能有效滤除电路中的高频噪声和杂波,使得输出端的信号更为平稳和稳定…

JVM-垃圾收集算法

前言 在 Java 中,垃圾收集(Garbage Collection)是一种自动管理内存的机制,它负责在运行时识别和释放不再被程序使用的内存,从而避免内存泄漏和悬空引用问题。本篇文章将介绍三种常见的垃圾收集算法。 标记-清除&…

用html写一个旋转菜单

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>旋转菜单</title><link relstylesheet href"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"&…