前端路由实现

前端路由原理

先按一定的规则, 实现hash表, key是路径, value是处理页面渲染的回调。
然后通过监听事件,来循环hash表,执行相应的回调函数。

location.hash + hashchange事件

通过location.hash, location.assign(), location.replace()来改变hash
然后通过监听hashchange来做相应的处理

浏览器兼容好

history.pushState() + popState事件

通过pushState() 来想history state 栈中添加新的url
然后history.go(), history.back(),来触发页面跳转
然后通过popstate监听url的改变

浏览器兼容相对差点