1. 作用
可配置的两种路由模式,最直接的体现在于是否有 #
号
- history 模式显示的 url:
http://localhost:8080/a/b/c
- hash 模式显示的 url:
http://localhost:8080/#/a/b/c
2. 区别
history | hash | |
---|---|---|
url 路径 | 路径中没有 # 号 | 路径中含有 # 号 |
请求资源 | 会把整个路径当做资源进行请求。可能导致原只想切换路由,却被错当成请求路径的一部分,从而返回 404 资源请求错误 | # 后面的值不会被作为 http 请求的一部分 |
兼容性 | 比起 hash 模式略差,需要后端配合配置 nginx | 比起 history 模式较好。但在某些需要链接分享的场景中,可能会被当做不合法的路径而无法访问 |
3. 配置路由模式
// src/router/index.js
export default new VueRouter({
// 可选值:history 或 hash
mode: 'history',
routes: [...]
})