Web應用中的路由的做用和原理:保證視圖和URL的同步,能夠把視圖當作資源的一種表現。當用戶在頁面中進行操做時,應用會在若干個交互狀態中切換,好比用戶會單擊瀏覽器的前進、後退按鈕進行切換等。路由系統的職責之一就是記錄一些重要的狀態,好比用戶的登陸狀態、當前訪問資源、用戶的上一訪問資源等,並根據須要從新以同步或異步的方式向服務端請求獲取資源,而後從新渲染視圖。html
在傳統的多頁面應有開發中,路由的概念僅僅存於後端Web應用服務器端(後端路由),如今則逐漸向前端延伸,造成前端路由框架。react-router則是與React配套的前端框架路由系統,它經過管理URL,實現React組件的切換和狀態的變化。前端
學習react-router 能夠看其做者的官網的資料 https://reacttraining.com/react-router 。在使用前,首先要了解 react-router ( https://github.com/ReactTraining/react-router ) 和react
react-router-dom (https://github.com/ReactTraining/react-router/tree/master/packages/react-router-dom )的區別。git
React-router提供了一些router的核心api,包括Router, Route, Switch等,可是它沒有提供dom操做進行跳轉的api。github
React-router-dom提供了BrowserRouter, Route, Link等api,咱們能夠經過dom的事件控制路由。例如點擊一個按鈕進行跳轉,大多數狀況下咱們是這種狀況,因此在開發過程當中,咱們更可能是使用React-router-dom。後端
具體學習使用 react-router和react-router-dom可參照這篇文章:React-router4簡約教程api