主要是浏览器端的 React Router 4 使用
npm i -S react-router-dom
<BrowserRouter>
需要包裹整个应用,若使用了 Redux, 则 <Provider>
包裹 <BrowserRouter>
const ProviderApp = (
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>
);
<Route>
<Route path='...' component={...}>blah</Route> // 贪心匹配
<Route path='...' exact component={...}>blah</Route> // 完全匹配,区别在于 exact
<Route path='/:args' component={...}>blah</Route> // 带参数
<Link>
<a>
<Link to='...'>blah blah blah</Link>
<Link>
中的to
属性需要与<Route>
中的path
属性对应
<Redirect>
<Redirect to=‘…’></Redirect>
可以放在最底部,用来匹配未能识别的路由,进行 404 的提示<Switch>
只渲染命中的第一个路由
<Switch>
<Route>…</Route>
<Route>…</Route>
<Route>…</Route>
</Switch>
使用 React-Router 时,组件的 props
会包含额外的与路由相关的参数
history
push()
可以进行路由跳转location
包含页面信息match
路由参数相关,是否完全匹配,url
params.location