vue-router 路由模式有哪几种?
有三种。
1. Hash 模式: 使用URL 的 hash 值来作为路由,支持所有浏览器
1.1 url 路径会出现 # 号字符
1.2 hash值不包括在HTTP请啊求中,它是交由前端路由处理,所以改变 hash 值时不会刷新页面,也不会向服务器发送请求
1.3 hash值的改变会触发 hashchange 事件
2. History 模式:以HTML5 History API 和服务器配置,参考官网中HTML5 History 模式tract
2.1 整个地址重新加载,可以保存历史记录,方便前进后退
2.2 使用 HTML5 API(久浏览器不支持)和 HTTP 服务端配置,没有后台配置的话,页面刷新时会出现 404
3. Abstract 模式:支持所有 javascript 运行模式,如果发现没有浏览器的API,路由会自动强制进入这个模式。
vue-router 中默认使用的是 hash模式, 也是会出现如下的URL;URL带有#号
我们可以用如下代码修改成history模式
import Vue from 'vue'
import Router from 'vue-router'
import Main from '@/components/Main'
Vue.use(Router)
export default new Router({
mode: 'history',
routes: [
{
path: '/',
component: Main
}
]
})
如果vue-router 使用 history模式,部署时需要注意什么?
HTTP 服务端需要进行配置,将页面请求全部重定向到 index.html
nginx 配置:
location / {
try_files $uri $uri/ /index.html;
}