关于history 路由好用还是 hash 路由好用?

243 阅读1分钟

这两天有新人同事,问我history 路由好用还是 hash 路由好用? 我个人认为还是见仁见智的。简单讲一下个人的理解。

history模式

HTML5标准发布之后,浏览器提供了两个新的api,pushState和replaceState,这两个方法可以改变页面URL而不向服务器发请求,与hash模式的hashchange事件有异曲同工之妙,同时还有一个新的事件popstate,通过监听这个事件,配合两个改变URL但不会重新请求页面的方法,就可以用一种新的方式实现前端路由,相比较hash模式而言,地址中不会有#,看起来跟好看,美观一点

hash模式

hash模式就简单许多,也是HTML5标准发布后提供的hashchange事件,通过在url地址携带#的方式,配合前文提到的hashchange事件来变更spa页面内的组件。

小结:个人认为两者没有太大的区别,SPA是基于路由和组件的,路由用于设定访问路径,建立URl和页面之间的映射关系的时候,两种模式没有太大的区别,殊途同归。