Skip to content
This repository was archived by the owner on Apr 3, 2026. It is now read-only.

NicolasOmar/react-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Practice Repo React Practice

Repository created to record my practice learning React with exercises based on the Udemy Course of Stephen Grider.

Table of contents

Status

  • Current repo's version is React practice version
  • This course has been completed on 28/04/2020 - Certificate

Why does it not have any updated dependencies?

After finishing its related Udemy course, I archive this repository and unarchive it when I start a new training and add a link in the Other practice repos section referring to its new repo. But I don't update any associated dependency due to technology changes during the years between each practice, and the produced code which works with the mentioned requirements.

Requirements

  • Node v12.16.1 or above
  • For the eighth exercise only

Setup

After cloning the repo, go to the created folder and install the node packages.

git clone https://github.com/NicolasOmar/react-practice.git
cd react-practice
npm run setup-all

setup-all is the command to install all the projects, but if you want to do it one by one, you can change that last line for one of the following:

App Setup Command
All npm run setup-all
Comments npm run setup-comments
Seasons npm run setup-seasons
Finder npm run setup-finder
Videos npm run setup-videos
Songs npm run setup-songs
Blog npm run setup-blog
Streams npm run setup-streams
Languages npm run setup-languages
Posts npm run setup-posts

How to run it

To run any specific exercise, execute the following command in the project´s folder:

npm start

In the seventh exercise, you have to run the following commands in different terminals:

npm run api
npm run media
npm start

Repo structure & what I learned in each exercise

  • Comments app (1-comments folder)
    • Create a React project with Create-React-App.
    • Use CSS classes, styles, and JS variables in jsx.
    • Component creation with data passing using props & composition using props.children.
    • Add mocked data with Faker.js.
    • Basic usage of Semantic UI as main UI library.
  • Seasons app (2-seasons folder)
    • Use class-based components.
    • How to use Gelocation API.
    • Handle states (creation and update).
    • How to use componentDidMount.
    • How to use DefaultProps.
  • Finder app (3-finder folder)
    • How to handle Events.
    • Make a controlled input using states.
    • Pass and invoke parent functions in child components.
    • Use Unsplash API to get photos.
    • Handle API request with Axios.
    • Add an API folder to have a better project structure, isolating API logic.
    • Handle a list of elements with Array.map function.
    • Show date formats with moment.
    • Basic CSS grid.
    • Handle DOM style with React.createRef.
  • Videos app (4-videos folder)
    • Work with Google/Youtube API.
    • Better understanding of prop passing between parent and child components.
  • Songs app (5-songs folder)
    • Integrate Redux into a React project using React-Redux.
    • Work with Providers, reducers, and actions to pass data between components.
  • Blog app (6-blog folder)
    • Handle asynchronous action creators by a middleware with redux-thunk.
    • Refactor code on mapStateToProps to use component props in the function.
    • Reduce endpoint calls in action creators.
  • Streams app (7-streams folder)
  • Languages app (8-languages folder)
    • Use Context as an alternative to Redux for distributing data to the other components.
    • How to use Provider and Consumer.
    • How to replace Redux using a custom Context implementation.
  • Posts app (9-posts folder)
    • Use the Hooks system to handle state data with useState and its updates with useEffect.
    • How to isolate Hooks logic to use it in other contexts.

Other practice repos

Node Angular GraphQL Typescript HTML & CSS Styling NextJS Python NestJS
Node Practice Repo Angular Practice Repo GraphQL Practice Repo Typescript Practice Repo HTML and CSS Practice Repo Styling Practice Repo NextJS Practice Repo Python Practice Repo NestJS Practice Repo