hash模式和hsitory模式均可以實現無刷新跳轉功能。前端
hash模式:前端路由的路徑用井號#拼接在真實URL後面的模式。當井號後面的路徑發生變化時,不會致使瀏覽器向服務器發出請求,而是會觸發hashchange事件。後端
hash雖然出如今路由中,可是不被包含在HTTP請求中,對後端沒有影響,所以改變hash時不會從新加載頁面。hash的改變會記錄在window.history中,所以就能夠發現瀏覽器能夠實現前進後退功能了,所以實現了無刷新跳轉。
history模式是HTML5新增的,history模式包括兩大部分,切換和修改。瀏覽器
切換歷史狀態包括:back、forward、go三個方法。 修改歷史狀態包括:pushState、replaceState。這兩個方法基於back、forward、go的基礎之上,他們提供了對歷史記錄進行修改的功能。只是當它們執行修改時,雖然改變了URL,可是瀏覽器不會當即向後端發送請求。經過pushState、replaceState實現無刷新跳轉。 能夠隨意修改path,這種修改是會從新請求URL的,可是要求咱們在服務器端配好地址,不然會返回404.在項目中配置一個404界面也是頗有必要的。