OMDB Router
In order ease into React Router, we're going to use a familiar API: OMDB. We'll use this API to create a simple application with multiple routes.
Getting Started
Fork and clone the starter repo below to get started.
https://github.com/WDI-SEA/react-omdb
The App
/- home page with a search form, to display results/results/:imdbID- page to see movie details/about- a static about page
OMDB Search Component
After verifying that the starter code runs, let's make a OMDBSearch component inside a new file src/components/OMDBSearch.jsx. It should contain the following:
React
A new React component
a
renderfunction to render some text
Module export
import React, { Component } from 'react';
class OMDBSearch extends Component {
render () {
return (
<div>
<h1>Search for Movies</h1>
</div>
);
}
}
module.exports = OMDBSearch;About Component
Let's also make an About component for our About page. It will be very similar to the component above, inside a new file src/components/About.jsx, only it will say About.
Modify src/app.jsx to render these components.
Once finished, run npm start and navigate to the page. The two components should render on the page.
React Router
Now, let's make this a little more useful by installing react-router, in order to get the OMDBSearch and About components to appear on different pages.
Then, require the following dependencies from react-router in src/app.jsx.
These will give us the necessary modules to add routing to the application. Let's add the Router and set up Routes in the render function inside App.
This is what we need to set up our Router. The Router component contains the routes and history for our frontend routes. Each Route component contains a path and a component to render for that route.
Try navigating to http://localhost:3000 and http://localhost:3000/about and see if the routes work.
Search Route
We're missing one route, the route for search results. We'll need one more component for that route, so let's make a component called ShowMovie in /src/components/ShowMovie.jsx.
In the Router, we'll be able to pass parameters through the route, and they'll be available through props! Completing the Router:
The complete /src/app.jsx
Before moving forward, make sure the routes we defined render components. Our next step will be adding movie search functionality to OMDBSearch and ShowMovie.
Last updated
Was this helpful?