hash模式 和 history模式之间的区别

1 hash模式url带#号,history模式不带#号。

history丢掉了#,操作中不怕前进和后退,就怕刷新,如果没有服务端的支持,刷新之后就会去请求服务器,由于找不到相应的支持响应或者资源,就会报出404页面。
hash模式下,前端路由修改的是#中的信息,而浏览器请求时是不带hash的去请求服务器的,所以没有问题

前端路由的核心,就在于 —— 改变视图的同时不会向后端发出请求。

hash —— 即地址栏 URL 中的 # 符号。hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。此处我们在任何网址后面输入#abc刷新,页面都不会跳转的,history则相反,没有对应的页面就是出现404
history —— 利用了 HTML5 History Interface 中

新增的 pushState() 和 replaceState() 方法。

(需要特定浏览器支持)这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。只是当它们执行修改时,虽然改变了当前的 URL,但浏览器不会立即向后端发送请求。
因此可以说,

hash 模式和 history 模式都属于浏览器自身的特性,Vue-Router 只是利用了这两个特性(通过调用浏览器提供的接口)来实现前端路由.

你可能感兴趣的:(hash模式 和 history模式之间的区别)