hash和hitory的区别

145 阅读1分钟

Hash模式

hash 模式 是把路由的路径用 # 拼接的真实 URL 后面的,当#号后面的路径发送改变,浏览器不会重新发送请求,而是触发 onhashchange 事件.


Hash的特点

  • hash变化会触发网页跳转

  • hsh 可以改变 URl ,不会触发页面重新加载,页面不会刷新,所有页面跳转都在客服端进行,不算是一次 http 请求,不利于 SEO 优化. hsah 只能跳转与当前URL 同文档的URL

  • hash 通过 window.onhashchange 的方式,来监听 hash 的改变,借此实现无刷新跳转的功能。

  • hash 永远不会向服务器端发送请求

History模式

history允许开发者直接更改前端路由,即更新浏览器 URL 地址而不重新发起请求。要与后端配合使用.

History特点

  • 新的 url 可以是与当前 url 同源的任意 url ,也可以是与当前 url 一样的地址,但是这样会导致的一个问题是,会把重复的这一次操作记录到栈当中。

  • 通过 history.state ,添加任意类型的数据到记录中。

  • 可以额外设置 title 属性,以便后续使用。

  • 通过 pushStatereplaceState 来实现无刷新跳转的功能。