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
  • Analysis
  • Challenge
  • Tasks
  • Setup
  1. Part 8: Apps

6.0 - YouTube Api

All thanks, up front, to Stephen Grider for the core functionality of this app: the YouTube Search and the YTSearch npm package. If you want to check out an amazing React course, check out any one of his courses on Udemy. He often has his work on sale, and he is an incredible instructor.

Here we use the part of his YouTube search application to build something original.

Analysis

One of the best ways to learn to code is to take things apart. A lot of developers will tell you that they often have to reverse engineer something to understand how it is working. Tactics to understand the dynamics of an application might include commenting out small and large chunks of code, writing console statements, setting breakpoints, adding more code to a component, researching phrases that aren't clear, and talking to others.

One task you will have for this challenge is to break this app apart and understand how it's working.

Challenge

After you understand the app, we'd like you to do something original with the data coming back from a search. Here's what you should do for this challenge:

Objective: Make something original. Show a different and interesting way to show the props coming back from the search.

Tasks

  1. Figure out how to get an API KEY from YouTube and add it into the API_KEY variable in the Video.js component. Help each other figure this out.

  2. Figure out how each component is working by adding console.log statements in the app.

  3. Add general comments in the app to note how it is working.

  4. Figure out what kind of data is available as props.

  5. Attempt to do something with more dynamic with those props.

Setup

Here's your folder/file structure.

    └── src
        └── assets
        └── components
                └── apps
                    └── YouTubeApi
                        └── SearchBar.js
                        └── Video.js
                        └── VideoDetail.js
Previous5.3 - Styled ComponentsNext6.1 - Video Component

Last updated 7 years ago