好处:良好的交互体验,用户无需刷新页面,页面流畅显示,前后工作隔离模式良好,减轻服务压力
缺点:不利于SEO,初次加载需要时间
2、哈希模式
默认情况下,vue-router处于散列模式,使用URL的散列模拟完整的URL。 因此,如果URL发生更改,则不会重新加载页面。 也就是单页面APP应用程序。 如果#之后的混列发生更改,浏览器不会向服务器提交请求。 浏览器不提交请求就不会刷新页面。 它还触发了一个名为hasChange的事件,通过拦截
混列模式会创建混列历史记录对象,并在访问不同的路由时发生两种情况:
将新路由添加到HashHistory.push ()浏览器访问的历史记录的堆栈顶部,并将HasHistory.replace )替换为当前堆栈顶部的路由)
3、历史模式
主要使用两个api实现: HTML5推式状态()和replaceState )。 推送状态) )可以更改url地址以不发送请求,replaceState ) )可以读取历史堆栈并修改浏览器记录
窗口. history.push state (state object,title,URL ) )。
窗口. history.replacestate (state object,title,URL ) )。
区别:
只能改变前面的hashchange、#后面的url片段。 在推送状态中设置的新URL可以是与当前URL相同的任何URL。
在history模式下,将后端URL更改为与常规请求相同。 如果后端没有设置与/user/id对应的路由处理,则返回404错误,需要在服务器端设置后端。 如果URL与静态资源不匹配,则返回相同的index.html页。 此页面是APP依赖的页面。 如果找不到静态资源,即使重定向到依赖关系也要买年