路由
路由這個(gè)概念最先是后端出現(xiàn)。
- 瀏覽器發(fā)出請(qǐng)求
- 服務(wù)端監(jiān)聽到80端口(或443)有請(qǐng)求過來,并解析URL 路徑
- 服務(wù)端返回相應(yīng)信息(.html摆尝、.php、json玻靡、圖片等)
- 瀏覽器根據(jù)數(shù)據(jù)包的
Content-Type
來解析數(shù)據(jù)
這就是SSR 服務(wù)端渲染,直接返回頁(yè)面
前端路由
本質(zhì)是檢測(cè)
url
的變化中贝,截獲url
地址囤捻,然后解析來匹配路由規(guī)則。
路由hash
模式
url
中# 后面的hash值變化邻寿,不會(huì)導(dǎo)致瀏覽器向服務(wù)器發(fā)出請(qǐng)求蝎土,頁(yè)面不會(huì)刷新。
- 通過監(jiān)聽
hashchange
事件绣否,檢測(cè)hash值的變化 - 檢測(cè)hash值的變化誊涯,通過替換DOM 的方式實(shí)現(xiàn)頁(yè)面的更換
路由histroy
模式
不再通過hash值的變化,來跳轉(zhuǎn)URL蒜撮,需要后端支持
- 在服務(wù)端增加一個(gè)覆蓋所有情況的候選資源暴构,如果URL匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個(gè)
index.html
頁(yè)面段磨,也就是app依賴頁(yè)面 - 通過監(jiān)聽
popstate
事件取逾,匹配路由,更新頁(yè)面的DOM