vue-router 有 3 种路由模式:hash、history、abstract
其中,3 种路由模式的说明如下:
hash: 使用 URL hash 值来作路由。支持所有浏览器,包括不支持 HTML5 History Api 的浏览器;
history : 依赖 HTML5 History API 和服务器配置。具体可以查看 HTML5 History 模式;
abstract : 支持所有 JavaScript 运行环境,如 Node.js 服务器端。如果发现没有浏览器的 API,路由会自动强制进入这个模式.
hash的原理是采用hashchange事件,可以在window监听hash的变化。我们在url后面随便添加一个#xx触发这个事件。
history的原理是H5的几个新APIhistory.pushState(data,title,url):在浏览器中新增一条历史记录;
history.replaceState(data,title,url):在浏览器中替换当前历史记录;