路由的含義
簡(jiǎn)單來(lái)說(shuō)出牧,路由就是URL到函數(shù)的映射箱硕。
路由的分類
- 服務(wù)端路由
- 客戶端路由
- 客戶端靜態(tài)路由
- 客戶端動(dòng)態(tài)路由
服務(wù)端路由
對(duì)于服務(wù)器來(lái)說(shuō)涯贞,當(dāng)接收到客戶端發(fā)來(lái)的HTTP請(qǐng)求界轩,會(huì)根據(jù)請(qǐng)求的URL萝招,來(lái)找到相應(yīng)的映射函數(shù)反症,然后執(zhí)行該函數(shù)辛块,并將函數(shù)的返回值發(fā)送給客戶端。對(duì)于最簡(jiǎn)單的靜態(tài)資源服務(wù)器铅碍,可以認(rèn)為润绵,所有URL的映射函數(shù)就是一個(gè)文件讀取操作。對(duì)于動(dòng)態(tài)資源胞谈,映射函數(shù)可能是一個(gè)數(shù)據(jù)庫(kù)讀取操作尘盼,也可能是進(jìn)行一些數(shù)據(jù)的處理憨愉,等等。
這也是經(jīng)典的路由方式卿捎。
客戶端靜態(tài)路由
借助angular配紫、reactjs等前端框架的興起,單頁(yè)應(yīng)用逐漸流行午阵,客戶端路由的概念形成躺孝。
主要是基于以下兩種方式實(shí)現(xiàn):
- Hash
- History API
客戶端動(dòng)態(tài)路由
當(dāng)路由機(jī)制由后端移到前端處理的時(shí)候,又希望動(dòng)態(tài)加載資源底桂,這時(shí)候植袍,動(dòng)態(tài)路由的概念出現(xiàn)了。
其核心問(wèn)題籽懦,就是實(shí)現(xiàn)資源的按需加載于个。
關(guān)于路由的進(jìn)階思考
傳統(tǒng)的開(kāi)發(fā)思路:我們?yōu)槊總€(gè) URL 編寫(xiě)?yīng)毩⒌捻?yè)面或者模塊。
新的開(kāi)發(fā)思路:URL 是一個(gè)狀態(tài)暮顺,代碼讀取這個(gè)狀態(tài)作出不同展現(xiàn)厅篓,展現(xiàn)得完全不同時(shí),可以看作傳統(tǒng)模式的頁(yè)面切換捶码;但還可以做到只有某一塊區(qū)域展現(xiàn)得不同羽氮。