Skip to main content

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

39h 48m
English
Free

Transform into a Senior React Developer by building a comprehensive E-commerce app with cutting-edge technologies like Redux, Hooks, GraphQL, ContextAPI, Stripe, and Firebase.

Course Overview

Updated with the latest React features for 2020! Join a thriving online community of over 200,000 developers and learn from industry veterans who have honed their skills in Silicon Valley and Toronto using React.js. This course focuses on efficiency and delivers up-to-date content to save you from outdated and incomplete tutorials. Graduates have secured positions at top tech firms like Google, Tesla, Amazon, and Apple.

Key Features and Learning Path

Guaranteed to be the most comprehensive resource for React, this project-based course covers the entire modern toolchain. You will develop a large-scale e-commerce application reminiscent of Shopify, employing React, Redux, React Hooks, React Router, GraphQL, and other technologies. We’ll guide you step-by-step, from the basics to advanced concept implementation, ensuring you can make informed architectural decisions.

Hands-On Experience

The course provides detailed instructions and complete project codes, regardless of whether you code along or not. This allows every participant to have a portfolio-ready project upon completion.

Topics Covered

  • 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 (Progressive Web Apps)
  • React Performance Optimization
  • React Design Patterns
  • Testing with Jest, Enzyme, and Snapshot Testing
  • React Best Practices
  • Data Persistence and Session Storage
  • State Normalization

Why Choose This Course?

  • Massive Project Development: Tackle the largest project you'll encounter in any course, a task that typically requires several months to complete alone.
  • Expert Instructors: Learn from Andrei and Yihua, seasoned developers who have worked on prominent e-commerce platforms and enterprise-level React applications.
  • Beyond Basics: Gain a deep understanding of design patterns, app architecture, and performance considerations, preparing you for real-world challenges.

This course is tailored to elevate you from beginner to the top 10% of React developers, empowering you with practical, production-ready skills.

Instructors

Andrei Neagoie

Andrei is acclaimed for his top-rated development courses on Udemy, and his teaching has propelled students into roles at tech giants like Apple and IBM. As a self-taught programmer, he ensures that learning is accessible, affordable, and relevant, drawing on his extensive experience in Silicon Valley and Toronto.

Yihua Zhang

Yihua brings over a decade of teaching experience, having worked with major tech firms in Toronto. His approach is to instill a strong foundation while focusing on the practical application of skills, preparing you for a successful career in web development.

Course Requirements

  • Basic knowledge of HTML, CSS, and JavaScript
  • No prior experience with React or other JS frameworks is required

Target Audience

  • Individuals eager to surpass beginner-level tutorials
  • Programmers aspiring to learn an in-demand web development skill
  • Developers aiming to be in the top tier of React professionals
  • Students seeking to gain experience in building scalable applications
  • Graduates from bootcamps or online courses ready to deepen their knowledge

What You'll Learn

  • Building enterprise-level React applications and deploying them to production
  • Creating reactive, performance-optimized, large-scale apps like a senior developer
  • Mastering the latest React features, including Hooks and Context API
  • Becoming one of the top 10% ReactJS developers
  • Utilizing GraphQL and managing application states with Redux and Redux Saga
  • Implementing authentication and user account setup
  • Building full-stack applications with Firebase
  • Leading React projects with effective architectural decision-making
  • Mastering React Design Patterns and CSS in JS with styled-components
  • Converting applications into Progressive Web Apps
  • Testing applications using Jest, Enzyme, and snapshot testing
  • Integrating online payment systems using the Stripe API
  • Writing clean code with ES6/ES7/ES8/ES9/ES10 JavaScript

About the Authors

udemy

udemy thumbnail
By connecting students all over the world to the best instructors, Udemy is helping individuals reach their goals and pursue their dreams. Udemy is the leading global marketplace for teaching and learning, connecting millions of students to the skills they need to succeed. Udemy helps organizations of all kinds prepare for the ever-evolving future of work. Our curated collection of top-rated business and technical courses gives companies, governments, and nonprofits the power to develop in-house expertise and satisfy employees’ hunger for learning and development.

zerotomastery.io

zerotomastery.io thumbnail
Whether you are just starting to learn to code or want to advance your skills, Zero To Mastery Academy will teach you React, Javascript, Python, CSS and more to help you advance your career, get hired and succeed at some of the top companies in the world.

Watch Online 284 lessons

0:00 0:00
#Lesson TitleDuration
1Complete React Developer: Zero to Mastery03:49
2Course Outline04:58
3React Concepts02:07
4The Birth of React.js09:25
5Declarative vs Imperative06:19
6Component Architecture05:24
7One Way Data Flow06:11
8UI Library04:53
9How To Be A Great React Developer04:19
10Section Overview04:06
11Environment Setup For Mac08:09
12Environment Setup For Windows09:54
13Getting Started with Toolkits11:13
14Introducing Monsters Rolodex01:55
15Getting Started with Vite05:45
16Vite Packages12:51
17Vite Scripts10:30
18Update React to 1907:00
19Installing and Using Yarn04:02
20Understanding React main.jsx08:12
21Intro to JSX08:21
22Components and useState - Part 108:46
23useState Setter Function - Part 208:39
24Basics of Props10:58
25Iterating Components Through an Array08:57
26Rendering09:20
27useState and Re-rendering11:45
28Side Effects and useEffect10:14
29Fetching User Data08:09
30Getting Images with RoboHash03:33
31Folder Structure and Components13:10
32Filtering by Search Input06:54
33Finishing Styles10:23
34Scaffolding a project with Create React App09:38
35Don't Eject01:58
36DOM & Virtual DOM10:12
37React & ReactDOM11:08
38React & ReactDOM part 206:26
39ReactDOM v18 Changes02:29
40DOM Paint Flashing06:10
41The Long Road Ahead02:53
42Project Overview01:48
43Github Strategy07:23
44Scaffolding Our Capstone Project07:16
45Setting Up Our Categories06:02
46Adding Sass06:57
47Category Item Component07:00
48Directory Component07:17
49Adding Fonts09:22
50Routing06:19
51Updating/Upgrading Libraries08:23
52Setting Up Our Homepage08:23
53React Router Outlet11:17
54Navigation Bar Component11:17
55React Router Link07:02
56Styling for Navigation + Logo05:05
57Setting Up Firebase07:45
58Authentication Flow07:00
59Authenticating With Firebase08:22
60Introducing Firestore Data Models13:02
61Setting Up User Documents14:35
62Finish Creating User Documents06:50
63Sign In With Redirect14:05
64Sign Up Form Pt.106:50
65Sign Up Form Pt.211:40
66Sign Up With Email + Password15:11
67Generalizing Form Input Component10:21
68Custom Button Component12:34
69Sign In Form11:00
70Finishing Authentication Page10:48
71Need For Context08:06
72User Context08:27
73Re-rendering From Context12:20
74Signing Out06:16
75Exercise: Imposter Syndrome08:45
76Observer: onAuthStateChange02:56
77Finalizing Auth Listener11:01
78Observer Pattern08:22
79New Shop Page10:27
80Products Context06:02
81Product Card Component06:47
82Cart Icon & Dropdown08:17
83Toggle Cart Open09:29
84Add To Cart Pt.107:57
85Add To Cart Pt.208:47
86Cart Item Designs10:41
87Creating Checkout Page08:09
88Decrement Checkout Item Quantity08:19
89Checkout Item Pt.207:25
90Checkout Item Pt.309:02
91Cart Total08:44
92Firestore DB No-SQL03:53
93addCollectionAndDocuments Pt.107:02
94addCollectionAndDocuments Pt.209:29
95Get Products + Categories From Firestore07:05
96Using Our CategoriesMap09:25
97Category Preview Component09:10
98Nested Routes in Shop07:40
99Category Page06:25
100Fixing Clashing Styles08:52
101Introducing Styled-Components09:10
102Styled-Components - Button11:35
103Styled-Component - Cart Dropdown09:10
104Styled-Component - Directory Item & Cart Icon09:37
105Styled-Component - Form Input Component10:53
106Last Touches08:55
107Deploying On Netlify03:57
108Adding Redirects For Netlify08:58
109Reducers explained09:35
110User Reducer11:26
111Cart Reducer Pt. 117:15
112Cart Reducer Pt. 209:58
113Cart Reducer Pt. 307:22
114Redux Toolkit Aside09:16
115Redux vs Context: Access04:14
116Redux vs Context: Data Flow08:50
117React-Redux: Installation04:53
118React-Redux: Setting Up Our Store07:14
119React-Redux: Creating User Reducer10:34
120Redux Part: Selectors06:08
121Categories Reducer07:46
122Categories Selectors08:02
123Business Logic in Our Selectors08:42
124What Triggers useSelector08:05
125Demystifying Middleware13:22
126Redux Triggers Extra Re-renders05:23
127Reselect Library13:42
128Migrating Cart Context to Redux Pt. 108:43
129Migrating Cart Context to Redux Pt. 205:54
130Migrating Cart Context to Redux Pt. 308:38
131Migrate Cart Context to Redux Pt. 406:39
132Redux-Persist07:06
133Redux-Devtools09:32
134Asynchronous Redux: Redux-Thunk08:11
135Redux-Thunk Pt. 207:47
136Redux-Thunk Pt. 308:33
137Asynchronous Redux: Redux-Saga08:00
138Generator Functions08:39
139Redux-Saga: fetchCategoriesAsync Thunk to Saga10:35
140Redux-Saga: Converting onAuthStateChanged Listener to Promise07:14
141Redux-Saga: Check User Session Saga Pt. 111:05
142Redux-Saga: Check User Session Saga Pt. 207:55
143Redux-Saga: Sign in Sagas09:05
144Redux-Saga: Sign up Sagas10:26
145Redux-Saga: Sign out Sagas08:31
146Redux Toolkit Intro08:34
147Using createSlice11:41
148Using Redux Toolkit Action Creators07:24
149Non Serializable Value Middleware10:35
150Immutable Middleware04:04
151Categories to createSlice04:38
152Cart to createSlice09:32
153The Need for Serverless Functions08:55
154Serverless Functions Explained06:58
155Setting up Stripe08:40
156Setting up Our PaymentForm08:20
157Writing Our First Serverless Function09:32
158Finishing Stripe Payment12:35
159Tidying Up Our UI12:57
160Adding Auth With Netlify URL01:24
161Adding Environment Variables To Netlify05:20
162Typescript Introduction07:52
163Starting our Typing08:15
164Typescript Interfaces09:52
165Typescript Types & Third Party Library Types11:50
166ChangeEvent Type From React03:30
167Understanding Generics11:21
168Typing React's SetState09:20
169Crwn-Clothing Typescript Overview07:55
170Typing createAction13:04
171Typing User Action Creators08:36
172Typing User Selectors08:47
173The Problem With Discriminating Unions07:46
174Type Predicate Functions05:54
175Intersections + Return Types08:36
176withMatcher Type07:21
177Improving Our Reducer Typing09:16
178Typing Redux Cart Files Pt. 109:21
179Typing Redux Cart Files Pt. 207:27
180Typing Out Firebase Utils13:21
181Typing User Actions08:48
182Typing User Reducer + Selectors06:35
183Typing Our Rootstate09:40
184Typing Third Party Libraries02:24
185Typing Our Custom Middleware01:45
186Typing Categories Saga08:09
187Typing User Sagas Pt. 108:54
188Typing User Sagas Pt. 205:29
189Typing Button Component07:59
190Typing Input & Form Components09:31
191Typing SVG Imports07:17
192Typing Our Payment Form08:20
193GraphQL Explained05:34
194GraphQL Playground07:40
195Graphql Queries10:10
196Categories Query08:37
197Updating Components To Consume GraphQL Values06:30
198Variables In useQuery & Caching11:52
199Mutations05:47
200Apollo vs Redux05:18
201Do Not Optimize For Performance Until You Need It03:23
202useCallback Pt.106:17
203useCallback Pt. 204:01
204useMemo06:45
205React Devtools Profiling & Memo07:51
206Code Splitting, Dynamic Imports, Suspense & Lazy10:41
207React Compiler05:23
208Firebase Rule Security06:37
209Don't Over Complicate02:06
210Be a Late Follower02:57
211Break Things Down01:39
212It Will Never Be Perfect01:54
213Progressive Web Apps12:55
214Progressive Web Apps Examples06:16
215PWA - HTTPS06:12
216PWA - App Manifest06:13
217PWA - Service Workers13:16
218PWA - Final Thoughts02:04
219PWA - Our Application10:42
220Global Styles and Media Queries08:37
221Remaining Mobile Styles10:05
222Section Overview06:22
223Types of Tests02:59
224Testing Libraries15:29
225Unit Tests02:43
226Integration Tests02:47
227Automation Testing04:28
228Final Note On Testing02:57
229Setting Up Jest11:30
230Our First Tests11:11
231Writing Tests05:32
232Asynchronous Tests10:19
233Asynchronous Tests 211:42
234Mocks and Spies12:51
235Introduction To Enzyme14:30
236Snapshot Testing09:30
237Snapshot Testing + Code Coverage04:55
238Testing Stateful Components11:17
239Quick Recap02:36
240Testing Connected Components23:51
241Testing Connected Components 203:36
242Testing Reducers14:58
243Testing Actions18:28
244Section Review04:12
245Aside - React Testing Library04:05
246Basics of RTL - Render and Screen08:57
247Button Tests - Part 109:33
248Button Tests - Part 205:22
249Render with Providers and Cart Icon Tests14:22
250Navigation Tests - Part 110:49
251Navigation Tests - Part 205:57
252Product Card and Testing Redux Actions07:18
253Navigation Tests - Part 308:42
254Category Tests and React-Router-Dom Mocks11:48
255Category Reducer Test07:58
256Category Selector Test06:10
257Category Sagas - Part 109:22
258Category Sagas - Part 213:58
259Introduction to Webpack + Babel12:11
260Webpack Config10:41
261Introduction to Gatsby.js07:56
262Starting a Gatsby Project09:04
263Gatsby Pages09:30
264Gatsby GraphQL + Markdown08:40
265Building Our Blog 110:54
266Building Our Blog 209:13
267Building Our Blog 306:55
268Building Our Blog 407:27
269Building Our Blog 509:33
270map()05:49
271Promises14:58
272filter()02:56
273includes()12:51
274CWD: Git + Github17:41
275CWD: Git + Github 216:53
276Async Await09:36
277find()03:07
278reduce()06:52
279Memoization07:48
280Currying04:25
281ES6 Classes08:45
282Inheritance14:42
283Thank You!01:18
284AMA - 100,000 Students!!38:31