---摘自Angular中文文檔
angular中赊堪,當(dāng)路由器導(dǎo)航到一個(gè)新的組件視圖時(shí),它會(huì)用該視圖的 URL 來更新瀏覽器的當(dāng)前地址以及歷史。 嚴(yán)格來說负溪,這個(gè) URL 其實(shí)是本地的逃沿,瀏覽器不會(huì)把該 URL 發(fā)給服務(wù)器婴渡,并且不會(huì)重新加載此頁面。angluar提供了兩種URL風(fēng)格
一種是 HTML5的 pushState 風(fēng)格:localhost:3002/crisis-center/
現(xiàn)代HTML5瀏覽器支持history.pushState API, 這是一項(xiàng)可以改變?yōu)g覽的當(dāng)前地址和歷史凯亮,卻又不會(huì)觸發(fā)服務(wù)端頁面請(qǐng)求的技術(shù)边臼。路由器可以合成出一個(gè)“自然的”URL,它看起來和那些需要進(jìn)行頁面加載的URL沒有什么區(qū)別
angular默認(rèn)的是HTML5風(fēng)格假消,它生成的URL更容易被用戶理解柠并,也為將來的服務(wù)端渲染預(yù)留了空間。
第二種是hash URL: localhost:3002/src/#/crisis-center/
老舊的瀏覽器在當(dāng)前地址的URL發(fā)生變化時(shí),總會(huì)向服務(wù)器發(fā)送請(qǐng)求臼予,唯一例外的規(guī)則是:當(dāng)變化位于“#”(被稱為hash)后面不會(huì)發(fā)送鸣戴。通過把應(yīng)用內(nèi)的路由URL拼接到#之后,路由器就可以貨到這條“額外格則”帶來的優(yōu)點(diǎn)粘拾,html中的錨點(diǎn)定位也是基于此規(guī)則
除非你有強(qiáng)烈的理由不得不使用 hash 路由窄锅,否則就應(yīng)該堅(jiān)決使用默認(rèn)的 HTML 5 路由風(fēng)格。