面試官想聽到什么答案呢?
1、為什么會出現(xiàn)前端路由。
2、前端路由解決了什么問題。
3、前端路由實現(xiàn)的原理是什么。
1、為什么會出現(xiàn)前端路由。
傳統(tǒng)頁面:
-
整個項目都是 DOM 直出的頁面(簡單說就是在瀏覽器輸入網(wǎng)址后發(fā)起請求,返回來的 HTML 頁面是最終呈現(xiàn)的效果,那就是 DOM 直出。) - 每次加載頁面(每次點擊頁面跳轉),都會重新請求 HTML 資源,返回 HTML 資源以及里面的 CSS 等靜態(tài)資源,組合成一個新的頁面。
單頁面
時代在進步,科技在發(fā)展,面對日益增長的網(wǎng)頁需求,網(wǎng)頁開始走向模塊化、組件化的道路。隨之而來的是代碼的難以維護、不可控、迭代艱難等現(xiàn)象。面臨這種情況,催生出不少優(yōu)秀的現(xiàn)代前端框架,首當其沖的便是 React 、 Vue 、 Angular 等著名單頁面應用框架。
運用這些單頁面框架之后, HTML 頁面基本上只有一個 DOM 入口,所有的頁面組件,都是通過運行app.js 腳本,```掛載到 <div id="root"></div> 這個節(jié)點下面
既然單頁面是這樣渲染的,那如果我有十幾個頁面要互相跳轉切換,咋整?。???這時候 前端路由 應運而生,它的出現(xiàn)就是為了解決單頁面網(wǎng)站,通過切換瀏覽器地址路徑,來匹配相對應的頁面組件。
原理
前端路由 會根據(jù)瀏覽器地址欄 pathname 的變化,去匹配相應的頁面組件。然后將其通過創(chuàng)建 DOM 節(jié)點的形式,塞入根節(jié)點 <div id="root"></div> 。這就達到了無刷新頁面切換的效果,從側面也能說明正因為無刷新,所以 React 、 Vue 、 Angular 等現(xiàn)代框架在創(chuàng)建頁面組件的時候,每個組件都有自己的 生命周期 。
總結
什么是前端路由?簡單說就是前端控制頁面跳轉,而不需要要向后端去請求。為什么用前端路由?還不是因為時代在進步,單頁應用的興起,當然興起的原因就不細說了。前端路由解決了什么?后臺和前端工作更加細化了,后臺主要工作就是提供數(shù)據(jù),前端負責展示,當然還有一些節(jié)約資源,減小服務器壓力什么的。