vuejs3.0 从入门到精通——初始化项目——路由

发布时间 2023-11-01 10:48:55作者: 左扬

路由

  Vue Router 是 Vue.js 官方的路由管理器,它和 Vue.js 深度集成,用于构建单页面应用。Vue.js 单页面应用是基于路由和组件映射的,路由用于配置访问路径,将组件(components)映射到路由路径(routes)。

一、路由模式

  Vue Router 常用的两种模式是 hash 模式和 HTML5 模式,对应的创建模式分别是 create WebHashHistory 和 createWebHistory。

    • createWebHashHistory 模式:
    • createWebHistory 模式:

1.1、createWebHashHistory模式

  创建 hash 历史记录。指浏览器地址栏 URL 的#(此 hash 不是密码学中的散列运算),如 http://www.abc.com/#/hello,其中的#/hello 为 hash 值。它的特点在于 hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。

1.2、createWebHistory模式

  创建 HTML5 历史记录。在浏览器的历史记录栈中利用 HTML5 的 History Interface 新增的 pushState 和 replaceState 方法,在当前已有的 back、forward、go 基础上,它们提供了修改历史记录的功能。当它们执行修改时,虽然改变了目前的 URL,但浏览器不会立即向后端发送请求。

  在Vue 3中,createWebHashHistorycreateWebHistory的区别确实在于URL中是否带有哈希符号“#”。

  • createWebHashHistory:

当使用createWebHashHistory创建Vue Router实例时,URL中的路径将以哈希形式呈现,即带有“#”符号。例如,如果当前路由是“/user/profile”,则URL将显示为“http://example.com/#/user/profile”。

这种模式在老版本的浏览器中通常被使用,因为它允许通过URL的哈希部分来标识每个路由,而不需要使用HTML5 History API。然而,现代浏览器大多都支持HTML5 History API,因此使用createWebHistory可能更加适合。

  • createWebHistory:

当使用createWebHistory创建Vue Router实例时,URL中的路径将以常规形式呈现,即不带有“#”符号。例如,如果当前路由是“/user/profile”,则URL将显示为“http://example.com/user/profile”。

这种模式在现代浏览器中更为常见,因为它利用了HTML5 History API来管理路由历史记录。它还允许使用浏览器的标准前进和后退按钮进行导航,而不需要依赖URL的哈希部分。

  选择使用createWebHashHistory还是createWebHistory取决于你的应用需求和目标浏览器的支持情况。

  如果你需要兼容老版本的浏览器或特定的环境,并且不需要使用HTML5 History API,那么使用createWebHashHistory可能更合适。否则,现代浏览器大多都支持HTML5 History API,因此使用createWebHistory可能更加适合。