1.什么是路由
簡單的說,路由是根據不同的 url 地址展示不同的內容或頁面;
2、什么是前端路由?
前端路由就是把不同路由對應不同的內容或頁面的任務交給前端來做,之前是通過服務端根據 url 的不同返回不同的頁面實現的;
3、什么是后端路由?
(參考鏈接http://www.cnblogs.com/yuqing6/p/6731980.html)
通過用戶請求的url導航到具體的html頁面;每跳轉到不同的URL,都是重新訪問服務端,然后服務端返回頁面,頁面也可以是服務端獲取數據,然后和模板組合,返回HTML,也可以是直接返回模板HTML,然后由前端js再去請求數據,使用前端模板和數據進行組合,生成想要的HTML。
4、前端路由的兩種實現原理
(參考鏈接https://segmentfault.com/a/1190000007238999)
①、History API
重點說其中的兩個新增的API history.pushState 和 history.replaceState;
②、hash
根據監聽哈希變化觸發的事件 —— hashchange 事件;
5、前端路由優缺點
優點:
1.從性能和用戶體驗的層面來比較的話,后端路由每次訪問一個新頁面的時候都要向服務器發送請求,然后服務器再響應請求,這個過程肯定會有延遲。而前端路由在訪問一個新頁面的時候僅僅是變換了一下路徑而已,沒有了網絡延遲,對於用戶體驗來說會有相當大的提升。
2.在某些場合中,用ajax請求,可以讓頁面無刷新,頁面變了但Url沒有變化,用戶就不能復制到想要的地址,用前端路由做單頁面網頁就很好的解決了這個問題。
缺點:
使用瀏覽器的前進,后退鍵的時候會重新發送請求,沒有合理地利用緩存。
6、前端路由在很多開源的js類庫框架中都得到支持,如angularJS,Backbone,Reactjs等等。
(參考鏈接http://web.jobbole.com/84644/)
①、AngularJS
Angular 是流行的企業級框架,許多開發人員都在使用它來構建和維護復雜的 web 應用程序。Angular 的人氣非常高,包括 Domino’s Pizza, Ryanair, iTunes Connect, PayPal Checkout, 谷歌等企業都在使用它。Angular 是一個由谷歌支持的開源框架。Angular 自稱是 HTML 的一個擴展,用來構建復雜的 web 應用程序。
Angular 是一個 MVC 類型的框架。它提供了模型和視圖之間的雙向數據綁定。該數據綁定允許每當數據改變時,兩邊自動更新。 它使你能夠構建可復用的視圖組件。它提供了一個服務框架,使得后端-前端服務通信更容易。最后,它只是普通的 JavaScript。
②、React
React 自稱是一個用於構建用戶界面的 JavaScript 庫。React 主要是 MVC 中的 V。它的重點完全在 MVC 的 V 部分,忽視應用程序架構的其余部分。它提供了一個組件層,使得創建 UI 元素,組合元素變得更容易。它使用虛擬 DOM,因此優化了渲染,且允許從 node.js 渲染 React。此外,它實現了單向響應的數據流,因此比其他框架更容易理解和使用。
③、Backbone
Backbone 提供一個完整的 MVC 框架以及路由。模型允許鍵-值綁定和數據變化的事件處理,Backbone 是我創建簡單 web 應用程序的首選框架。
.....(參考鏈接http://web.jobbole.com/84644/)