Complete React Developer in 2020 (w/ Redux, Hooks, GraphQL)
4.7 (7,832 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
40,715 students enrolled

Complete React Developer in 2020 (w/ Redux, Hooks, GraphQL)

Become a Senior React Developer! Build a massive E-commerce app with Redux, Hooks, GraphQL, ContextAPI, Stripe, Firebase
4.7 (7,832 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
40,715 students enrolled
Last updated 5/2020
English
English [Auto-generated]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 39.5 hours on-demand video
  • 74 articles
  • 42 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Build enterprise level React applications and deploy to production
  • Learn to build reactive, performant, large scale applications like a senior developer
  • Learn the latest features in React including Hooks, Context API, Suspense, React Lazy + more
  • Master the latest ecosystem of a React Developer from scratch
  • Become the top 10% ReactJS Developer
  • Using GraphQL as a React Developer
  • Use Redux, Redux Thunk and Redux Saga in your applications
  • Learn to compare tradeoffs when it comes to different state management
  • Set up authentication and user accounts
  • Use Firebase to build full stack applications
  • Learn to lead React projects by making good architecture decisions and helping others on your team
  • Master React Design Patterns
  • Learn CSS in JS with styled-components
  • Routing with React Router
  • Converting apps to Progressive Web Apps
  • Testing your application with Jest, Enzyme and snapshot testing
  • Handling online payments with Stripe API
  • Using the latest ES6/ES7/ES8/ES9/ES10 JavaScript to write clean code
Course content
Expand all 341 lectures 40:06:13
+ Introduction
3 lectures 07:05
Join Our Online Classroom!
00:58
Exercise: Meet The Community
01:10
+ React Key Concepts
8 lectures 38:51
React Concepts
02:06

Imperative programming is a way to write code in a manner that has clear instructions and order using control flow: Do this, then do that, then do this. With Imperative programming you tell the machine exactly the steps to take to accomplish a task. Declarative programming on the other hand, is a way to write code by describing what you want done, without writing each step and control flow. Example: jQuery is very imperative, while React.js is very declarative.

Preview 06:18
Component Architecture
05:23
One Way Data Flow
06:10
UI Library
04:52
How To Be A Great React Developer
04:18
Web Developer Monthly
00:20
+ React Basics
43 lectures 04:09:36
Section Overview
06:13
Environment Setup for Mac
08:08
Environment Setup For Windows
09:53
NPM vs YARN
00:29
Yihua's VSCode font and settings
00:44
Create React App
03:31
Create React App 2
05:28
React Project Setup
10:52
Don't Eject
01:57
Class Components
05:26
Thinking In JSX
05:44
Dynamic Content
05:40
Optional: map() + key attribute
00:32
Single Page Application
05:37
Fetching Content
05:47
Optional: Promises
00:16
Architecting Our App
06:20
Card List Component
08:06
Quick note on quotes for string interpolation
00:12
Card Component
07:13
Exercise: Breaking Into Components
04:02
State vs Props
07:21
SearchField State
09:42
React Events
05:00
Filtering State
05:54
Optional: filter(), includes()
00:17
Search Box Component
07:44
Exercise: Where To Put State?
03:57
Class Methods and Arrow Functions
10:02
Quick Note: Binding in React
00:12
Optional: Git + Github
00:23
Optional: Connecting With SSH To Github
00:47
Deploying Our App
07:21
React and ReactDOM
11:09
Latest React Package Updates
10:23
Revisiting VirtualDOM + Unidirectional Data Flow
14:20
Asynchronous setState
14:47
Introducing Lifecycle Methods
07:15
React Lifecycle Methods - Mounting
06:03
React Lifecycle Methods - Updating
12:58
React Lifecycle Methods - Unmounting
03:13

Let's take a quick quiz to see which of React's two component types is best used when we don't need local state.

When should we use a functional component vs a class component?
1 question
Section Review
03:02
+ Master Project: Setting Up E-commerce Project
11 lectures 58:21
The Long Road Ahead
02:52
Project Overview
01:47
Course Guideline + Github Links
00:10
Quick Note About Github
00:38
E-commerce Homepage + SASS setup
13:19
Project Files + Modules
07:11
Project Component Architecture
04:07
CSS and SCSS files
00:12
Homepage and Directory Components
14:49
Styling Menu Items
08:28
+ Master Project: React Router and Routing
4 lectures 38:28
Routing In React
04:31
Routing In Our Project
09:09
React Router Dom
15:22
withRouter()
09:26
+ Master Project: Forms + Components
9 lectures 01:05:26
Shopping Data
01:59
Shop Page
12:38
Collection Item
09:32
Header Component
09:27
Resources: Importing SVG In React
00:17
Introducing Forms In React
07:22
Sign In Component
09:23
Form Input Component
08:41
Custom Button Component
06:07
+ Master Project: Firebase + User Authentication
19 lectures 01:42:58
Section Overview
03:15
Firebase Introduction
07:27
Adding a Project to Firebase
04:07
Note about Github
00:37
Google Sign In Authentication
07:41
Cloning From This Point On
00:15
Google Sign In Authentication 2
09:43
Optional: How to fix 403: restricted_client error
00:26
Google Sign In Authentication 3
09:42
Firebase Firestore
11:06
Optional: Async Await
00:20
Storing User Data In Firebase
17:09
Note: Firestore update regarding permissions
00:40
Storing User Data In Our App
09:19
Sign Up Component
10:13
Sign Up With Email and Password
04:56
Sign In With Email and Password
03:19
Note on our Custom Button
00:27

Let's take a quiz to remember the fundamental pattern we must follow if we use the onAuthStateChanged() or onSnapshot() methods!

Firebase unsubscribe method
1 question
Section Review
02:14
+ Master Project: Redux 1
30 lectures 03:31:53
Section Overview
02:09
Redux Introduction
04:40
Redux Concepts
09:41
Redux In Our Application
10:23
Redux Actions and Reducers
08:19
Setting Up Redux 1
14:58
Setting Up Redux 2
10:26
connect() and mapStateToProps
04:12
mapDispatchToProps
09:09
User Redirect and User Action Type
05:18
Cart Component
05:08
Card Dropdown Component
04:24
Implementing Redux In Cart
10:03
Add To Cart Styling
06:14
Cart Item Reducer
14:14
Adding Multiple Items To Cart
08:02
Optional: find()
00:17
Cart Item Component
07:15
Optional: reduce()
00:18
Selectors in Redux
08:31
Optional: Memoization
00:22
Reselect Library
08:22
User Selectors
07:41
Checkout Page
08:35
Checkout Page 2
07:02
Extensible Code
02:53
Dispatch Action Shorthand
03:41
Checkout Item Component
08:18
Remove Items From Cart
08:42
Remove Items At Checkout
12:35
+ Master Project: Session Storage + Persistence
2 lectures 19:03
Local Storage and Session Storage
08:02
Redux Persist
11:01
+ Master Project: Redux 2
3 lectures 27:34
Directory State Into Redux
12:09

Why do we need Redux? React.js is a view library which means that as our applications get larger and larger, we will have more and more data or state that needs to be displayed and updated on a website. Redux helps us manage this larger and larger state by moving all of this data into a single store or JavaScript object so programmers can better manage large applications.

Preview 07:47
Collection Overview Component
07:38
Requirements
  • Basic HTML, CSS and JavaScript knowledge
  • You do not need any experience with React or any other JS framework!
Description

Updated with all new React features for 2020! Join a live online community of over 240,000+ developers and a course taught by industry experts that have actually worked both in Silicon Valley and Toronto with React.js.

Using the latest version of React, this course is focused on efficiency. Never spend time on confusing, out of date, incomplete tutorials anymore. Graduates of Andrei’s courses are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook, + other top tech companies.

We guarantee you this is the most comprehensive online resource on React. This project based course will introduce you to all of the modern toolchain of a React developer in 2020. Along the way, we will build a massive e-commerce application similar to Shopify using React, Redux, React Hooks, React Router, GraphQL, Context API, Firebase, Redux-Saga, Stripe + more. This is going to be a full stack app (MERN stack), using Firebase.

The curriculum is going to be very hands on as we walk you from start to finish of releasing a professional React project all the way into production. We will start from the very beginning by teaching you React Basics and then going into advanced topics so you can make good decisions on architecture and tools on any of your future ReactJS projects.

All code is going to be provided step by step and even if you don’t like to code along, you will get access to the the full master project code so anyone signed up for the course will have their own project to put on their portfolio right away.

The topics covered will be:

- React Basics

- React Router

- Redux

- Redux Saga

- Asynchronous Redux

- React Hooks

- Context API

- React Suspense + React Lazy

- Firebase

- Stripe API

- Styled-Components

- GraphQL

- Apollo

- PWAs

- React Performance

- React Design Patterns

- Testing with Jest, Enzyme and Snapshot testing

- React Best Practices

- Persistance + Session Storage

- State Normalization

+ more


Wait wait… I know what you’re thinking. Why aren’t we building 10+ projects? Well, here’s the truth: Most courses teach you React and do just that. They show you how to get started, build 10 projects that are simple and easy to build in a day, and just add some CSS to make them look fancy. In real life though, you’re not building silly applications. When you apply to jobs, nobody is going to care that you built a really pretty To Do app. Employers want to see you build large apps that can scale, that have good architecture, and that can be deployed to production.


Let me tell you 3 reasons why this course is different from any other React tutorial online:


1. You will build the biggest project you will see in any course. This type of project would take you months to implement yourself.


2. This course is taught by 2 instructors that have actually worked for some of the biggest tech firms using React in production. Yihua has been working on some of the biggest e-commerce websites that you have definitely heard of and probably have shopped at. Andrei has worked on enterprise level React applications for large IPOed tech firms in Silicon Valley as well as Toronto. By having both of them teach, you get to see different perspective and learn from 2 senior developers as if you are working at a company together.


3. We learn principles that are important beyond just what you learn as a beginner. Using the instructor's experiences you learn about design patterns, how to architect your app, organize your code, structure your folders, and how to think about performance. Let’s just say we don’t shy away from the advanced topics.


This course is not about making you just code along without understanding the principles so that when you are done with the course you don’t know what to do other than watch another tutorial. No! This course will push you and challenge you to go from an absolute beginner in React to someone that is in the top 10% of React developers. 


Taught By:

Andrei Neagoie is the instructor of the highest rated Development courses on Udemy as well as one of the fastest growing. His graduates have moved on to work for some of the biggest tech companies around the world like Apple, Google, Amazon, JP Morgan, IBM, UNIQLO etc... He has been working as a senior software developer in Silicon Valley and Toronto for many years, and is now taking all that he has learned, to teach programming skills and to help you discover the amazing career opportunities that being a developer allows in life. 

Having been a self taught programmer, he understands that there is an overwhelming number of online courses, tutorials and books that are overly verbose and inadequate at teaching proper skills. Most people feel paralyzed and don't know where to start when learning a complex subject matter, or even worse, most people don't have $20,000 to spend on a coding bootcamp. Programming skills should be affordable and open to all. An education material should teach real life skills that are current and they should not waste a student's valuable time.   Having learned important lessons from working for Fortune 500 companies, tech startups, to even founding his own business, he is now dedicating 100% of his time to teaching others valuable software development skills in order to take control of their life and work in an exciting industry with infinite possibilities. 

Andrei promises you that there are no other courses out there as comprehensive and as well explained. He believes that in order to learn anything of value, you need to start with the foundation and develop the roots of the tree. Only from there will you be able to learn concepts and specific skills(leaves) that connect to the foundation. Learning becomes exponential when structured in this way. 

Taking his experience in educational psychology and coding, Andrei's courses will take you on an understanding of complex subjects that you never thought would be possible.  

See you inside the courses!

--------

Yihua Zhang is one of the Instructors of Zero To Mastery, one of the highest rated and fastest growing Web Development academies on Udemy
. He has been working as a software developer for numerous years in Toronto for some of the largest tech companies in the world. He has also been working as an instructor for more than a decade. He is focused on bringing everything he has learned to help you achieve a new career as a developer, but also give you all the fundamental skills required to flourish in this incredible industry.


Yihua is a self taught developer, so he fully understands the challenges and mindset of coming into this industry from various other backgrounds. He has been on both sides of the table, as both an instructor and student numerous times so he can empathize with the difficulty of learning something new and challenging. Learning itself is a skill that needs to be practiced and improved upon, and he is dedicated to helping you improve and master that skill for yourself. Courses need to be practical, you need to be able to understand why you are learning the things that you are being taught. You need to understand the problem before you know the solution, and he prides himself on teaching you how to build professional, real world applications so you truly understand why you are doing things a specific way. He will teach you the mindset and skillset required to grow as a developer as fast as possible, so you can have the rich and fulfilling life that comes with this career.


Yihua's courses will guide you to build beautifully written and richly featured applications, while truly understanding all the complex concepts you will encounter along the way.



Who this course is for:
  • Students who are interested in going beyond a normal "beginner" tutorial
  • Programmers who want to learn the most in demand skill of a web developer
  • Developers that want to be in the top 10% of React Developers
  • Students who want to gain experience working on a scalable large application
  • Bootcamp or online tutorial graduates that want to go beyond the basics