Repository navigation
React Router
Joel Baxter edited this page Dec 11, 2018
·
1 revision
We use the react-router-dom for our frontend routing.
This module allows us to render routes conditionally, based on the current URL in the browser.
An example of this in use in our app:
- Our root file,
index.js, loads thereact-router-domas a dependency, then renders theAppas aBrowserRouter.
import React from 'react'
import { render } from 'react-dom'
import { BrowserRouter } from 'react-router-dom'
import './index.css'
import App from './components/App'
import * as serviceWorker from './serviceWorker'
render((
<BrowserRouter>
<App />
</BrowserRouter>
), document.getElementById('root'))
- Our
Apploads the header andMain, which contains the main content for our app.
import React, { Component } from 'react'
import Main from './Main'
export default class App extends Component {
render () {
return (
<div className="App">
<header className="App-header">
</header>
<Main />
</div>
)
}
}
- The
Maincomponent loads theSwitchandRoutecomponents fromreact-router-dom, then uses theSwitchto conditionally render theCalendarcomponent when we visit the/calendarURL.
import React, { Component } from 'react'
import Calendar from './Calendar'
import { Switch, Route } from 'react-router-dom'
export default class Main extends Component {
render () {
return (
<main>
<Switch>
<Route exact path='/calendar' component={Calendar}/>
</Switch>
</main>
)
}
}
- We visit
http://localhost:3000/calendarand our calendar loads. Woop!!