路由的含義
簡單來說,路由就是URL到函數(shù)的映射。
路由的分類
- 服務(wù)端路由
- 客戶端路由
- 客戶端靜態(tài)路由
- 客戶端動態(tài)路由
服務(wù)端路由
對于服務(wù)器來說,當(dāng)接收到客戶端發(fā)來的HTTP請求,會根據(jù)請求的URL,來找到相應(yīng)的映射函數(shù),然后執(zhí)行該函數(shù),并將函數(shù)的返回值發(fā)送給客戶端。對于最簡單的靜態(tài)資源服務(wù)器,可以認(rèn)為,所有URL的映射函數(shù)就是一個文件讀取操作。對于動態(tài)資源,映射函數(shù)可能是一個數(shù)據(jù)庫讀取操作,也可能是進(jìn)行一些數(shù)據(jù)的處理,等等。
這也是經(jīng)典的路由方式。
客戶端靜態(tài)路由
借助angular、reactjs等前端框架的興起,單頁應(yīng)用逐漸流行,客戶端路由的概念形成。
主要是基于以下兩種方式實現(xiàn):
- Hash
- History API
客戶端動態(tài)路由
當(dāng)路由機(jī)制由后端移到前端處理的時候,又希望動態(tài)加載資源,這時候,動態(tài)路由的概念出現(xiàn)了。
其核心問題,就是實現(xiàn)資源的按需加載。
關(guān)于路由的進(jìn)階思考
傳統(tǒng)的開發(fā)思路:我們?yōu)槊總€ URL 編寫?yīng)毩⒌捻撁婊蛘吣K。
新的開發(fā)思路:URL 是一個狀態(tài),代碼讀取這個狀態(tài)作出不同展現(xiàn),展現(xiàn)得完全不同時,可以看作傳統(tǒng)模式的頁面切換;但還可以做到只有某一塊區(qū)域展現(xiàn)得不同。