1、什麼是‘前端路由’前端
2、爲何使用路由web
傳統web開發每個請求地址都會請求服務器來處理,可是用戶的有些操做並不須要請求服務器,直接修改下頁面的邏輯就能知足需求,這個時候若是再請求服務器就會大大下降用戶的體驗,因此這個時候最好使用前端路由來實現。固然,直接使用js處理也能知足需求,可是js處理並不會改變頁面的地址,用戶也就沒法收藏當前頁面,js並不會更新頁面的url。而使用前端路由,url是跟着改變的,這種方式對於搜索引擎和用戶都是友好的。後端
3、先後端路由區別瀏覽器
後端路由意味着瀏覽器刷新頁面,網速慢的時候可能屏幕全白而後纔有新內容出現。前端路由能夠隨意控制,邏輯也是在前端。從性能和用戶體驗層面來講,後端每次訪問一個新的頁面都須要向服務器發送請求,而後服務器再響應請求,這個過程是有延遲的。而前端路由訪問一個新頁面的時候只是改變了路徑而已,並不存在網絡延遲,用戶體驗會好不少。緩存
4、路由分層解析服務器
路由——url的分層解析網絡
第一層:解析到服務器目標機器,這個一般是域名或ip。前後端分離
第二層:解析到服務器的特定資源文件。這個一般是pathinfo。性能
第三層:解析特定資源的特定狀態。包含在pathinfo參數中。搜索引擎
主要是服務器,資源文件,特定狀態定位。
5、前端路由適用場景
前端路由更多應用在單頁面應用上,也就是spa,由於單頁面應用基本上都是先後端分離的,後端天然不會提供路由給前端。
在單頁面應用,大部分頁面結構不變,只改變部份內容。
6、前端路由的優缺點
優勢:
用戶體驗好,不須要每次都請求服務器獲取頁面和內容,就能快速展現給用戶。
缺點:
使用瀏覽器的前進、後退的時候會從新發送請求,沒有合理利用緩存
單頁面沒法記住以前的滾動位置,沒法再前進、後退的時候記住滾動位置
7、前端路由實現
一、改變hash值,監聽onhashchange事件,這種方式優勢是兼容低版本瀏覽器
二、經過historyAPI監聽popState事件,用pushState和replaceState來實現