98 lines
2.4 KiB
Markdown
98 lines
2.4 KiB
Markdown
---
|
|
title: React Router Cheatsheet
|
|
localeTitle: رد فعل تشاتر راوتر
|
|
---
|
|
استنادًا إلى [http://ricostacruz.com/cheatsheets/react-router.html](http://ricostacruz.com/cheatsheets/react-router.html) ولكن تم تحديثه لـ v2.0.0 من React Router.
|
|
|
|
## الأساسية
|
|
|
|
`import { render } from 'react-dom'
|
|
import { Router, Route, browserHistory } from 'react-router'
|
|
|
|
// Import RootView and NoMatch
|
|
|
|
render((
|
|
<Router history={browserHistory}>
|
|
<Route path="/" component={RootView} />
|
|
<Route path="*" component={PageNotFound} />
|
|
</Router>
|
|
), document.getElementById('app'))
|
|
`
|
|
|
|
## التعشيش
|
|
|
|
`import React from 'react'
|
|
import { render } from 'react-dom'
|
|
import { Router, Route, browserHistory } from 'react-router'
|
|
|
|
// Import About, Inbox and Messages
|
|
|
|
class Chrome extends React {
|
|
render () {
|
|
return (
|
|
<div>
|
|
<h1>App</h1>
|
|
<a href="/about">About</a>
|
|
<a href="/inbox">Inbox</a>
|
|
<a href="/messages">Messages</a>
|
|
{ this.props.children }
|
|
</div>
|
|
)
|
|
}
|
|
}
|
|
|
|
render((
|
|
<Router history={browserHistory}>
|
|
<Route path="/" component={Chrome}>
|
|
<Route path="about" component={About} />
|
|
<Route path="inbox" component={Inbox} />
|
|
<Route path="messages" component={Messages} />
|
|
</Route>
|
|
</Router>
|
|
), document.getElementById('app'))
|
|
`
|
|
|
|
## عنوان بارامز
|
|
|
|
``class Message extends React {
|
|
componentDidMount() {
|
|
// from the path `/inbox/messages/:id`
|
|
const id = this.props.params.id
|
|
...
|
|
``
|
|
|
|
## حلقة الوصل
|
|
|
|
``import { Link } from 'react-router'
|
|
|
|
/* Nav Component */
|
|
...
|
|
render() {
|
|
...
|
|
const userId = 10;
|
|
|
|
return (
|
|
// Adding params is as simple as appending them to the route
|
|
<Link to={`user/${userId}`}>User 10</Link>
|
|
|
|
// Classes can be added to the link element if the current route is the one they link to
|
|
<Link to="login"
|
|
activeClassName="-active">Login</Link>
|
|
)
|
|
}
|
|
``
|
|
|
|
## التكوين الأخرى
|
|
|
|
`<Route path="/">
|
|
<IndexRoute component={Home} />
|
|
<Route path="*" handler={NotFound} />
|
|
|
|
// arbitrary/url/login -> /arbitrary/url/sessions/new
|
|
<Redirect from="login" to="sessions/new" />
|
|
// arbitrary/url/about/1 -> /arbitrary/url/profile/1
|
|
<Redirect from="about/:id" to="profile/:id" />
|
|
|
|
<Route name="about-user" ... />
|
|
...
|
|
` |