JS-201-ReactFundamentals
  • Part 0: App Overview
  • Part 1: Intro to React
    • 1.0: Packages Setup
    • 1.1: Project Setup
    • 1.2: React Router Dom
  • Part 2: JavaScript Concepts
    • 2.0: ES6 Overview
    • 2.1: classes
    • 2.2: constructors
    • 2.3: extends
    • 2.4: super
    • 2.5: interpolation
    • 2.6: map
    • 2.7: filter
  • Part 3: Functional Components
    • 3.0: Functional Components Overview
    • 3.1: Calling Functional Components
    • 3.2: Single Element Rule
    • 3.3: Arrow Functions
    • 3.4: Challenge
    • 3.4: Solution
    • 3.5: Challenge 2
    • 3.5: Solution 2
  • Part 4: JSX Challenge
    • 4.1: JSX Overview
    • 4.1: Challenge Answer
    • 4.2: className
  • Part 5: Class Concepts
    • 5.1: State
    • 5.2: setState
    • 5.3: Class Components Challenge
    • 5.4: Class Components Challenge Answer
  • Part 6: Props Starter
    • 6.0: Props Overview
    • 6.1: Props Demo and Challenge 1
    • 6.2: Props Answer 2
    • 6.3: Props Passing Functions and Challenge 2
    • 6.4: Props Answer 2
    • 6.5: External Props and Mapping Components
    • 6.6: PropTypes
  • Part 7: Lifecycle Methods
    • 7.0: Lifecycle Overview
    • 7.1: Lifecycle Methods
    • 7.2: Mounting Methods
    • 7.3: Update Methods
    • 7.4: Unmount Methods
  • Part 8: Apps
    • 1.0 - Small Timer Apps
      • 1.1 - Simple Timer
      • 1.2 - Clock App
      • 1.3 - Stop Watch App
      • 1.4 - Challenge
    • 2.0 - Concept List
      • 2.1 - Concept Data
      • 2.2 - Concept App Component
      • 2.3 - Concept Component
      • 2.4 - Concept List Component
    • 3.0 - NYT
      • 3.1 - NytApp Component
      • 3.2 - Nyt Results
    • 4.0 - The Friend List App
      • 4.1 - Friend List App Component
      • 4.2 - Friend Component
    • 5.0 - Movie Search Application
      • 5.1 - Form Component
      • 5.2 - Form Results Component
      • 5.3 - Styled Components
    • 6.0 - YouTube Api
      • 6.1 - Video Component
      • 6.2 - Video Component
      • 6.3 - Video Component
    • 7.0 - Github Api Application
      • 7.1 - The Users
      • 7.2 - Github API Component
      • 7.3 - Github API Card
      • 7.4 - Github API Card Form
      • 7.5 - Github API Card List
      • 7.6 - Github API Search
      • 7.7 - Github API Challenge
    • 8.0 - Bitcoin Api Application
      • 8.1 - Bitcoin API Setup
      • 8.2 - Bitcoin API Fetch
      • 8.3 - Bitcoin API Line Chart
      • 8.4 - Bitcoin API Fetching Data
      • 8.5 - Bitcoin API Info Box
      • 8.6 - Bitcoin API Completed Code
    • 9.0 - Google Maps Api Challenge
    • 10.0 - Sound Cloud App Challenge
    • 11.0 - VR App Challenge
    • 12.0 - React Native Intro
  • Part 9: Project
  • Part 10: Notes
    • 10.1 - Resources
    • 10.2 - Troubleshooting
Powered by GitBook
On this page
  • What We're Going to Build & Learn
  • Folder Structure
  • Routes
  • MovieApp.js
  1. Part 8: Apps

5.0 - Movie Search Application

Previous4.2 - Friend ComponentNext5.1 - Form Component

Last updated 7 years ago

The next app we're going to build is a movie search app using API.

What We're Going to Build & Learn

  • First, we'll build an input that allows users to search for movies in a database. We'll also display results based on what they type.

  • We're going to learn how to use styled-components inside each of our React files, to easily style things.

  • The second part of the app we'll build is a section showing new movies at the box office. Here we'll learn more about utilizing APIs in react.

Folder Structure

To start off our application, let's go ahead and make a folder for this application called movie-search-app inside of our apps folder. We'll also add 3 files to help you out.

    └── src
        └── assets
        └── components
                └── apps
                    └── movie-search-app
                        └── Form.js
                        └── FormResults.js
                        └── MovieApp.js

Routes

Next, we need to configure out links/routes , so first inside of Sidebar.js insert the following link:

<li><Link to="/movie">Movie Search App</Link></li>

In Sidebar.js add the following route.

<Route exact path="/movie"><MovieSearchApp /></Route>

You'll also need to set up the import for the MovieSearchApp component:

import MovieSearchApp from '../apps/movie-search-app/MovieApp';

MovieApp.js

Now that we've set up our routing so that our app can find our new Movie App, let's go ahead and add our parent component file. Inside of movie-search-app create your first file called MovieApp.js.

Let's go ahead and set up our parent component. Type the following code below into your MovieApp.

import React, { Component } from 'react';
import { Form } from './Form';

export default class MovieApp extends Component {
    render() {
        return (
            <div className="main">
                <div className="mainDiv">
                    <Form />
                </div>
            </div>
        );
    }
}

Next, we'll start on our Form component!

this
Movie Form Component