下面来讲下解决方法
由于hisotry模式官方说须要服务器配置因此路由一直在用hash模式,针对这一需求须要了解h5新加的history模式前端
H5引入了history.pushState()和history.replaceState()这两个方法,他们容许添加和修改history实体。同时,这些方法会和window.onpostate事件一块儿工做。vue
pushState方法用一个新的url取代当前页面的url并把当前页面的url存进历史记录,浏览器
replaceState只用新url取代当前页面的url,可是不把当前页面的url存进历史记录服务器
pushState()有三个参数:state对象,标题字符串(如今没有浏览器支持),URL字符串(可选,若是为空,设置为当前页面的url)post
只有前进后退能够触发popstate事件,对于不是经过pushState,replaceState两个方法产生的url,state对象为空
因此首先监听一下popstate事件在监听事件里直接调回退的方法url
window.addEventListener("popstate", function(e) { window.history.back() }, false);
这样就能够直接退出当前页面了spa
还要history在服务器端渲染不出来的问题 前端其实也能够用一种笨方法解决的code
把你服务器的地址直接卸载路由里,根路径要把你页面的名字带上,就像这样对象
由于在APP里因此也不存在刷新页面找不到的问题,就不须要服务端来帮忙啦~
但愿能够帮到有相似需求的小伙伴,有更好的方法的大神也来指导下blog