Vue中hash模式和history模式的区别

  • 对于Vue这类渐进式前端开发框架,为了构建SPA(单页面应用),需要引入前端路由系统,这也就是Vue-Router存在的意义,vue中router默认hash模式。

hash模式(此hash不是密码学里的散列运算)

  • 指#后面的所有字符,他虽然包含在url中,但是不会发送http请求,把路由和页面交由前端托管
  • 比如这个URL:http://www.abc.com/#/hello ,hash的值为#/hello.它的特点在于:hash虽然出现在URL中,但不会被包括在HTTP请求中,对后端完全没有影响,因此改变hash不会重新加载页面。

history模式

  • 他会改变url,但是不会立马发送请求。
  • 但是当页面再次刷新时就会发送请求,如果后端不作任何的处理就会发生404。把路由和页面交由后端托管

总结

  1. hash 模式下,仅hash符号之前的内容会被包含在请求中,如http://www.abc.com,因此对于后端来说,即使没有做到对路由的全覆盖,也不会返回404错误。
  2. history模式下,前端的URL必须和实际向后端发起请求的URL一致。如htttp://www.abc.com/book/id。如果后端缺少对/book/id 的路由处理,将返回404错误,
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容