目前所说的路由基本都是前端路由。 前端路由是指通过一定的规则匹配路径,在不刷新的情况下更新渲染页面部分内容。
前端路由有两种实现方式:一种是hash路由,另一种是history路由。
hash
在 HTML5 的 history 新特性出现前,基本都是使用监听 hash 值来实现前端路由的。
hash 值更新的特点
- hash值的改变不会触发网页的重新加载
- 改变hash值会更改浏览器的历史记录
- 改变 hash 值会触发 window.onhashchange() 事件
而改变 hash 值的方式有 3 种:
在history的pushState、replaceState、onpopState的新特性出来后,才可以实现现在的history路由。