djgrant / beyonce-app

Code Your Future exercise app

Home Page:https://github.com/CodeYourFuture/syllabus/blob/scotland/react/lesson3.md

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Beyonce App

A tutorial for creating a fun React app.

What we will learn today?

  • Fetching data into components
  • Installing React components from npm
  • How to build an app using react-router

Challenge 1: render a list of albums

Things you will need to know:

Challenge 2: add routes to your app

In this challenge we'll split your app into 3 pages.

In src/components/App/App.js:

  • Copy the react-router imports from the CodeSandbox example over to your app

  • Wrap all of the JSX in a <Router> component

  • Move the content of each of the 3 sections into 3 new components, and then import them as components

  • Add 3 <Route> components, one for each of the compoents you just created. Each <Route> should have a path prop and a component prop.

  • Add a navigation bar to your app with links to the routes you've created

Challenge 3: install components to style your app

React components can be configured with props, which makes them ideal for sharing with others.

There are all sorts of React components that you can install and use in your projects.

In this challenge you'll add a video player to the Album component.

  • Open the Album component

  • Using npm, install react-player

  • Following the instructions on the readme add a react-player component into Album

  • Update your Albums component to pass in a videoUrl to the Album component

  • Add videoUrl as a prop type to the Album component

Homework

  • Find some more content and add another route to your App
  • Using react-router, show the About route content in tabs (see the how this is achieved in https://codesandbox.io/s/p3nww06y00)
  • Enhance the pages using components provided by reactstrap (Bootstrap for React)

About

Code Your Future exercise app

https://github.com/CodeYourFuture/syllabus/blob/scotland/react/lesson3.md


Languages

Language:JavaScript 83.8%Language:HTML 15.5%Language:CSS 0.6%