浏览器中对页面的访问是无状态的,所以我们在切换不同的页面时都会重新进行请求。但是在切换页面时是没有重新进行请求也没有重新刷新页面,使用起来就好像页面是有状态的,这就是路由的用处
hash 模式
hash 模式是一种把前端路由的路径用井号 # 拼接在真实 URL 后面的模式。当井号 # 后面的路径发生变化时,浏览器并不会重新发起请求,而是会触发 hashchange 事件。
总结一下 hash 模式的优缺点:
- 优点:浏览器兼容性较好,连 IE8 都支持
- 缺点:路径在井号
#的后面,比较丑
history 模式
history API 是 H5 提供的新特性,允许开发者直接更改前端路由,即更新浏览器 URL 地址而不重新发起请求。
总结一下 history 模式的优缺点:
- 优点:路径比较正规,没有井号
# - 缺点:兼容性不如 hash,且需要服务端支持,否则一刷新页面就404了
abstract 模式
适用于所有JavaScript环境,例如服务器端使用Node.js。如果没有浏览器API,路由器将自动被强制进入此模式。