前端路由有两种模式:hash 模式和 history 模式,接下来分析这两种模式和优缺点。
一、hash 模式
hash模式的原理是onhashchange事件,可以通过window对象来监听该事件。
在hash模式下,当url发生变化时,浏览器会记录下来,因此前进后退按钮都可以使用。
因此在该模式下,即使浏览器没有请求服务器,页面也会和url一一对应起来,后来人们给它起了一个霸气的名字叫前端路由,成为了单页应用标配。
需要注意的是hash模式下修改的是#后面的内容,使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。
hash 模式的优缺点:
- 优点:浏览器兼容性较好,连 IE8 都支持
- 缺点:路径在井号
#
的后面,比较丑
二、history 模式
history API 是 H5 提供的新特性,允许开发者直接更改前端路由,即更新浏览器 URL 地址而不重新发起请求。
history 模式的优缺点:
- 优点:路径比较正规,没有井号
#
- 缺点:兼容性不如 hash,且需要服务端支持,否则一刷新页面就404了
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了前端路由模式(hash和history)