前端路由实现方式
在单页面web网页中, 单纯的浏览器地址改变,网页不会重载,如单纯的hash网址改变网页不会变化,因此我们的路由主要是通过监听事件,并利用js实现动态改变网页内容,有两种实现方式:
hash模式:监听浏览器地址hash值变化,执行相应的js切换网页
history模式:利用history API实现url地址改变,网页内容改变
hash | history | |
---|---|---|
url显示 | 地址中永远带着#,不美观 | 地址干净、美观 |
回车刷新 | 可以加载到hash值对应页面 | 一般就是404掉了 |
支持版本 | 支持低版本浏览器和IE浏览器 | HTML5新推出的API |
上线部署 | 无 | 需要后端人员支持,解决刷新页面服务端404的问题 |
备注:
- 如果用户考虑url的规范那么就需要使用history模式,因为history模式没有#号,是个正常的url适合推广宣传。
- 其功能也有区别,比如我们在开发app的时候有分享页面,咱们把这个页面分享到第三方的app里,有的app里面url是不允许带有#号的,会被标记为不合法。所以要将#号去除那么就要使用history模式。