vue-router 有 3 种路由模式:hash、history、abstract对应的源码如下所示:
switch (mode) {
case 'history':
this.history = new HTML5History(this, options.base)
break
case 'hash':
this.history = new HashHistory(this, options.base,
this.fallback)
break;
case 'abstract':
this.history = new AbstractHistory(this,
options.base)
break
default:
if (process.env.NODE_ENV !== 'production') {
assert(false, `invalid mode: ${
mode}`)
}
}
复制代码
其中,3 种路由模式的说明如下:
hash: 使⽤ URL hash 值来作路由。⽀持所有浏览器,包括不⽀持 HTML5History Api 的浏览器;
history : 依赖 HTML5 History API 和服务器配置。具体可以查看 HTML5History 模式;
abstract : ⽀持所有 JavaScript 运⾏环境,如 Node.js 服务器端。如果发现没有浏览器的 API,路由会⾃动强制进⼊这个模式.