重拾 react - React-Router
由于最近一段时间一直在使用vue做项目,最近打算重拾react,在此记录react的点滴学习,实时更新
插件使用
插件: react-router-dom
安装: npm install -S react-router-dom
使用: import {Router} from 'react-router-dom'
Router 配置的方法
第一种
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import { Redirect } from 'react-router'
React.render((
<Router>
<Route path="/" component={App}>
<IndexRoute component={Dashboard} />
<Route path="about" component={About} />
<Route path="inbox" component={Inbox}>
<Route path="/messages/:id" component={Message} />
{/* 跳转 /inbox/messages/:id 到 /messages/:id */}
<Redirect from="messages/:id" to="/messages/:id" />
</Route>
</Route>
</Router>
), document.body)第二种
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22const routeConfig = [
{ path: '/',
component: App,
indexRoute: { component: Dashboard },
childRoutes: [
{ path: 'about', component: About },
{ path: 'inbox',
component: Inbox,
childRoutes: [
{ path: '/messages/:id', component: Message },
{ path: 'messages/:id',
onEnter: function (nextState, replaceState) {
replaceState(null, '/messages/' + nextState.params.id)
}
}
]
}
]
}
]
React.render(<Router routes={routeConfig} />, document.body)
组件类型
Router 最外层路由,包裹所有的路由
HashRouter
哈希路由BrowserRouter
历史路由Route 路由页面地址
Link 路由跳转
IndexRoute 用来设置一个默认路由
Redirect 路由重定向
Switch 有
Switch
标签,则其中的Route
在路径相同的情况下,只匹配第一个,这个可以避免重复匹配IndexLink 只有定义的路由被渲染后才激活
导航路由
历史路由模式
1
2
3// somewhere like a redux/flux action file:
import { browserHistory } from 'react-router'
browserHistory.push('/some/path')哈希路由模式
1
2
3// somewhere like a redux/flux action file:
import { HashHistory } from 'react-router'
HashHistory.push('/some/path')
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment
DisqusValine