React Router V4 也走了react的路,咳,一切都成組件。例如Route、Link、Switch等都是組件。
react-router和react-router-dom是react router拆分出來的,平時使用只須要引入react-router-dom,固然,若是搭配redux,你還須要使用react-router-redux。react
React Router 4 中,你能夠將各類組件及標籤放進 <Router>組件中,它用來保持與 location 的同步。tips: <Router>組件下只容許存在一個子元素。能夠像如下方式使用:web
import { BrowserRouter } from 'react-router-dom' ReactDOM.render(( <BrowserRouter> <App /> //在app中進行拆分,放網站的導航連接,以及其餘的 </BrowserRouter> ), document.getElementById('main'))
<Route>組件有以下屬性:redux
<Route>提供了三種渲染內容的方法:react-router
tips:<Route component>的優先級要比<Route render>高,一般component參數與render參數被更常常地使用。children參數偶爾會被使用,它更經常使用在path沒法匹配時呈現的'空'狀態。app
<Switch>會遍歷自身的子元素(即路由)並對第一個匹配當前路徑的元素進行渲染dom
import { Switch, Route } from 'react-router' <Switch> <Route exact path="/" component={Home}/> <Route path="/about" component={About}/> <Route path="/:user" component={User}/> <Route component={NoMatch}/> </Switch>
當你點擊<Link>時,URL會更新,組件會被從新渲染,可是頁面不會從新加載。
Link組件屬性:ide
// Link組件示例 // to爲string <Link to="/about">關於</Link> // to爲obj <Link to={{ pathname: '/courses', search: '?sort=name', hash: '#the-hash', state: { fromDashboard: true } }}/> // replace <Link to="/courses" replace />
React Router擁有優質的文檔,你能夠查看並從中瞭解更多的信息函數