vue路由history和hash的区别
vue路由的history模式和hash模式主要有以下区别:
1. 显示形式:hash模式的URL中会带有#号,而history模式不会带有#号。。
2. 实现原理:hash模式是基于锚点和onhashchange事件,而history模式是基于HTML5的historyAPI,如pushState和replaceState。使用pushState不会向服务端发送请求,只是改变客户端的URL地址,并记录到历史记录中。
3. 服务端支持:history模式需要服务端的支持。在单页面应用中,服务器会返回找不到页面的404错误。为了避免这个问题,服务器需要查找是否有这个地址,如果没有,则将根路由的index.html返回给浏览器。
4. 应用场景:如果用户考虑URL的规范,那么就需要使用history模式,因为history模式没有#号,是个正常的url,适合推广宣传。在开发app的时候,有的app里面url是不允许带有#号的,所以要将#号去除,就要使用history模式。