- 对于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。把路由和页面交由后端托管
总结
- hash 模式下,仅hash符号之前的内容会被包含在请求中,如
http://www.abc.com
,因此对于后端来说,即使没有做到对路由的全覆盖,也不会返回404错误。 - history模式下,前端的URL必须和实际向后端发起请求的URL一致。如
htttp://www.abc.com/book/id
。如果后端缺少对/book/id 的路由处理,将返回404错误,