前端路由原理
先按一定的规则, 实现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的改变
浏览器兼容相对差点