At its heart, React Router is a component.
render(<Router/>, document.getElementById('app'))That's not going to display anything until we configure a route.
Open up index.js and
- import
Router,Route, andhashHistory - render a
Routerinstead ofApp
// ...
import { Router, Route, hashHistory } from 'react-router'
render((
<Router history={hashHistory}>
<Route path="/" component={App}/>
</Router>
), document.getElementById('app'))Make sure your server is running with npm start and then visit
http://localhost:8080
You should get the same screen as before, but this time with some junk
in the URL. We're using hashHistory--it manages the routing history
with the hash portion of the url. It's got that extra junk to shim some
behavior the browser has natively when using real urls. We'll change
this to use real urls later and lose the junk, but for now, this works
great because it doesn't require any server-side configuration.
Create two new components at:
-
modules/About.js -
modules/Repos.js -
Inside the About component
- return a div that has the content/text About
-
Inside the Repos component
- return a div that has the content/text Repos
Now we can couple them to the app at their respective paths.
- import the modules into your index.js
- then add the following to your Router:
// insert into index.js
import About from './modules/About'
import Repos from './modules/Repos'
render((
<Router history={hashHistory}>
<Route path="/" component={App}/>
{/* add the routes here */}
<Route path="/repos" component={Repos}/>
<Route path="/about" component={About}/>
</Router>
), document.getElementById('app'))Now visit http://localhost:8080/#/about and http://localhost:8080/#/repos