hash
即地址欄 URL 中的 # 符號(hào)(此 hash 不是密碼學(xué)里的散列運(yùn)算)彪置。比如這個(gè) URL:http://www.abc.com/#/hello,hash 的值為 #/hello监憎。它的特點(diǎn)在于:hash 雖然出現(xiàn)在 URL 中庆揩,但不會(huì)被包括在 HTTP 請(qǐng)求中膳叨,對(duì)后端完全沒(méi)有影響洽洁,因此改變 hash 不會(huì)重新加載頁(yè)面。
history
利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法菲嘴。(需要特定瀏覽器支持)這兩個(gè)方法應(yīng)用于瀏覽器的歷史記錄棧饿自,在當(dāng)前已有的 back、forward龄坪、go 的基礎(chǔ)之上昭雌,它們提供了對(duì)歷史記錄進(jìn)行修改的功能。只是當(dāng)它們執(zhí)行修改時(shí)健田,雖然改變了當(dāng)前的 URL烛卧,但瀏覽器不會(huì)立即向后端發(fā)送請(qǐng)求。
因此可以說(shuō)妓局,hash 模式和 history 模式都屬于瀏覽器自身的特性总放,Vue-Router 只是利用了這兩個(gè)特性(通過(guò)調(diào)用瀏覽器提供的接口)來(lái)實(shí)現(xiàn)前端路由.