下面來講下解決方法
由於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