实现前端路由的目的是:当URL改变时,页面不刷新,页面内容被重新渲染。前端路由的实现有两种,分别是hash路由和browser路由。
hash路由
对于一个URL: http://www.a.com:5000/b/c/?id=xxx#d,这里#及其后面的部分称为hash,hash路由就是改变这一数值而不引起刷新实现的。具体方法:
在标签里设置链接指向新的路由
<a href="#/a">
利用window对象监听“hashchange”这一事件
window.addEventListener('hashchange',function(event){})
然后针对不同的路由进行对应的响应处理。
browser路由
browser路由是基于history对象实现的。history中有pushState()和replaceState()方法。
history.pushState()方法接受三个参数,状态对象(一个javascript对象),标题(未来可能用到的参数),URL。
*pushState不会触发hashchange事件