W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
當路由器導航到一個新的組件視圖時,它會用該視圖的 URL
來更新瀏覽器的當前地址以及歷史。 嚴格來說,這個 URL
其實是本地的,瀏覽器不會把該 URL 發(fā)給服務器,并且不會重新加載此頁面。
現(xiàn)代 HTML 5 瀏覽器支持 history.pushState API
, 這是一項可以改變?yōu)g覽器的當前地址和歷史,卻又不會觸發(fā)服務端頁面請求的技術。 路由器可以合成出一個“自然的”URL,它看起來和那些需要進行頁面加載的 URL 沒什么區(qū)別。
下面是危機中心的 URL
在 “HTML 5 pushState” 風格下的樣子:
老舊的瀏覽器在當前地址的 URL
變化時總會往服務器發(fā)送頁面請求……唯一的例外規(guī)則是:當這些變化位于 “#”(被稱為“hash”)后面時不會發(fā)送。通過把應用內的路由 URL
拼接在 #
之后,路由器可以獲得這條“例外規(guī)則”帶來的優(yōu)點。下面是到危機中心路由的 “hash URL”:
路由器通過兩種 LocationStrategy
提供者來支持所有這些風格:
PathLocationStrategy
- 默認的策略,支持 “HTML 5 pushState” 風格。
HashLocationStrategy
- 支持 “hash URL” 風格。
RouterModule.forRoot()
函數(shù)把 LocationStrategy
設置成了 PathLocationStrategy
,使其成為了默認策略。 你還可以在啟動過程中改寫(override
)它,來切換到 HashLocationStrategy
風格。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: