hash 和 history
區別:
外觀上:hash的路由在url中帶有#號
功能上:
hash雖然在url中,但是請求不會包裹它,對后端不會產生任何影響,改變hash不會重新加載頁面,
history是利用了html5 history interface中新增的pushState()和replaceState()方法,這兩個方法是應用于瀏覽器的歷史記錄堆疊,是以當前已有的back(),forward(),go()方法為基礎的,提供了對歷史記錄進行修改的功能,這兩個方法執行修改時,只是修改了地址欄中的url,而不會向后端發送請求,也不會觸發popstate事件,
因此,hash和history都是屬于瀏覽器自身的特性,而vue-router只是呼叫瀏覽器提供的介面借助這兩個特性來實作前端的路由,
404問題:
1、在hash模式下,僅hash符號之前的內容會被包含在請求中,如 http://www.page.com,對于后端來說,即使沒有做到對路由的全覆寫,也不會回傳404錯誤;
2、在history模式下,前端的url必須和實際后端發起請求的url一致,如http://www.page.com/person/name ,如果后端缺少對/person/name 的路由處理,將回傳404錯誤,
利弊:
如果是to B系統,對url要求不敏感,簡單易用,推薦 hash
to C系統,需要服務端支持的話,推薦使用history
注:在開發程序中,默認開啟的模式為hash,開啟history模式需要配置mode:'history'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/547113.html
標籤:其他
下一篇:記錄--一種更現代的深淺拷貝方法
