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拥有优质的文档,你能够查看并从中了解更多的信息函数