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属性,以便后续使用。 -
通过
pushState、replaceState来实现无刷新跳转的功能。