Complete React Developer Zero To Mastery

Tags: React

Become a Senior React Developer! Build a massive E-commerce app with Redux, Hooks, GraphQL, ContextAPI, Stripe, Firebase

Last updated 2022-01-10 | 4.6

- 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

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/ES11 JavaScript to write clean code

* Requirements

* Basic HTML
* CSS and JavaScript knowledge
* You do not need any experience with React or any other JS framework!

Description

  • 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/ES11 JavaScript to write clean code

Course content

36 sections • 385 lectures

Course Outline Preview 04:57

Join Our Online Classroom! Preview 01:15

Exercise: Meet The Community Preview 01:25

Monthly Coding Challenges, Free Resources and Guides Preview 00:40

React Concepts Preview 02:06

The Birth of React.js Preview 09:24

Declarative vs Imperative Preview 06:18

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.

Component Architecture Preview 05:23

One Way Data Flow Preview 06:10

UI Library Preview 04:52

How To Be A Great React Developer Preview 04:18

React Latest Version! Preview 00:18

Web Developer Monthly Preview 00:21

Section Overview Preview 06:13

Environment Setup for Mac Preview 08:08

Environment Setup For Windows Preview 09:53

NPM vs YARN Preview 00:29

Yihua's VSCode font and settings Preview 00:44

VSCode settings update Preview 00:14

Create React App - NPX Preview 11:00

Create React App - React-Scripts 1 Preview 11:42

Create React App - React-Scripts 2 Preview 11:44

Create React App - Everything Else Preview 06:03

Don't Eject Preview 01:57

Hooks vs Classes Preview 02:13

Class Components Preview 05:26

Thinking In JSX Preview 05:44

Dynamic Content Preview 05:40

Optional: map() + key attribute Preview 00:32

Single Page Application Preview 05:37

Fetching Content Preview 05:47

Optional: Promises Preview 00:16

Architecting Our App Preview 06:20

Card List Component Preview 08:06

Quick note on quotes for string interpolation Preview 00:12

Card Component Preview 07:13

Exercise: Breaking Into Components Preview 04:02

State vs Props Preview 07:21

SearchField State Preview 09:42

React Events Preview 05:00

Filtering State Preview 05:54

Optional: filter(), includes() Preview 00:17

Search Box Component Preview 07:44

Exercise: Where To Put State? Preview 03:57

Class Methods and Arrow Functions Preview 10:02

Exercise: Event Binding Preview 05:31

Quick Note: Binding in React Preview 00:12

Optional: Git + Github Preview 00:52

Optional: Connecting With SSH To Github Preview 00:47

Deploying Our App Preview 07:21

NOTE: CORS error Preview 00:23

React and ReactDOM Preview 11:09

Latest React Package Updates Preview 10:23

Revisiting VirtualDOM + Unidirectional Data Flow Preview 14:20

Asynchronous setState Preview 14:47

Introducing Lifecycle Methods Preview 07:15

React Lifecycle Methods - Mounting Preview 06:03

React Lifecycle Methods - Updating Preview 12:58

React Lifecycle Methods - Unmounting Preview 03:13

When should we use a functional component vs a class component?

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.

Section Review Preview 03:02

Endorsements On LinkedIN Preview 00:39

The Long Road Ahead Preview 02:52

Project Overview Preview 01:47

Github + Project Repositories Preview 04:47

Course Guideline + Github Links Preview 00:10

Quick Note About Github Preview 00:38

Update for CRA v4.0.0+ and React 17+ Preview 00:48

E-commerce Homepage + SASS setup Preview 13:19

Project Files + Modules Preview 07:11

Project Component Architecture Preview 04:07

CSS and SCSS files Preview 00:12

Homepage and Directory Components Preview 14:49

Styling Menu Items Preview 08:28

Updated Google Fonts UI Preview 00:20

Quick Note: React 17 Preview 00:25

React 17: Updating Packages + Latest Version Of React Preview 07:59

Note about react-router version Preview 00:22

Routing In React Preview 04:31

Routing In Our Project Preview 09:09

React Router Dom Preview 15:22

withRouter() Preview 09:26

Shopping Data Preview 01:59

Shop Page Preview 12:38

Collection Item Preview 09:32

Header Component Preview 09:27

Resources: Importing SVG In React Preview 00:17

Introducing Forms In React Preview 07:22

Sign In Component Preview 09:23

Form Input Component Preview 08:41

Custom Button Component Preview 06:07

Section Overview Preview 03:15

Firebase Introduction Preview 07:27

IMPORTANT NOTE: firebase version in the course! Preview 01:00

Adding a Project to Firebase Preview 04:07

Note about Github Preview 00:37

Firebase Compatibility Imports Preview 00:24

Google Sign In Authentication Preview 07:41

Cloning From This Point On Preview 00:15

Google Sign In Authentication 2 Preview 09:43

Optional: How to fix 403: restricted_client error Preview 00:26

Google Sign In Authentication 3 Preview 09:42

NOTE: Use Cloud Firestore NOT Realtime Database Preview 00:08

Firebase Firestore Preview 11:06

Optional: Async Await Preview 00:20

Storing User Data In Firebase Preview 17:09

Note: Firestore update regarding permissions Preview 00:40

Storing User Data In Our App Preview 09:19

Sign Up Component Preview 10:13

Sign Up With Email and Password Preview 04:56

Sign In With Email and Password Preview 03:19

Note on our Custom Button Preview 00:27

Firebase unsubscribe method

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

Section Review Preview 02:14

Section Overview Preview 02:09

Redux Introduction Preview 04:40

Redux Concepts Preview 09:41

Redux In Our Application Preview 10:23

Redux Actions and Reducers Preview 08:19

Setting Up Redux 1 Preview 14:58

Setting Up Redux 2 Preview 10:26

connect() and mapStateToProps Preview 04:12

mapDispatchToProps Preview 09:09

User Redirect and User Action Type Preview 05:18

Cart Component Preview 05:08

Cart Dropdown Component Preview 04:24

Implementing Redux In Cart Preview 10:03

Add To Cart Styling Preview 06:14

Cart Item Reducer Preview 14:14

Adding Multiple Items To Cart Preview 08:02

Optional: find() Preview 00:17

Cart Item Component Preview 07:15

Optional: reduce() Preview 00:18

Selectors in Redux Preview 08:31

Optional: Memoization Preview 00:22

Reselect Library Preview 08:22

Quick correction on CartIcon re-rendering Preview 00:53

User Selectors Preview 07:41

Checkout Page Preview 08:35

Checkout Page 2 Preview 07:02

Extensible Code Preview 02:53

Dispatch Action Shorthand Preview 03:41

Checkout Item Component Preview 08:18

Remove Items From Cart Preview 08:42

Remove Items At Checkout Preview 12:35

Directory State Into Redux Preview 12:09

Collection State Into Redux Preview 07:47

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.

Collection Overview Component Preview 07:38

Nested Routing in Shop Page Preview 08:08

Improving Naming Of Component Preview 01:47

Collection Routing and Selector Preview 08:11

Memoizing selectCollection and collectionUrlParam Preview 00:57

Optional: Currying Preview 00:16

Data Normalization + Collection Page Preview 09:26

Optional: Hash Tables vs Arrays Preview 00:12

Data Flow In Our App Preview 10:10

Thinking About Data Flow Preview 03:23

Introduction To Stripe Preview 05:39

Stripe Integration Preview 16:31

Note about TEST credit cards for Stripe Preview 00:13

Cloning From This Point On Preview 00:18

Finishing Touches + Look Ahead Preview 06:13

Deploying To Heroku Preview 12:06

Resources: Buildpack Preview 00:04

Linking Github to Heroku Preview 00:24

Optional: Git + Heroku commands Preview 01:32

Optimizing Production Build Preview 07:02

CSS in JS Preview 11:35

styled-components Preview 08:57

styled-components In Our App Preview 12:31

Thinking About Tradeoffs Preview 03:38

styled-components In Our App 2 Preview 03:22

styled-components In Our App 3 Preview 11:02

Exercise: styled-components Preview 00:12

Section Overview Preview 04:26

Quick Note: Firebase Preview 00:25

Firebase Refresher Preview 13:06

Firebase Refresher 2 Preview 05:58

Moving Our Shop Data To Firebase Preview 09:40

Moving Our Shop Data To Firebase 2 Preview 07:12

Reviewing What We Have Done Preview 04:22

Bringing Shop Data To Our App Preview 16:05

Adding Shop Data To Redux Preview 07:44

NOTE: Shop page may break Preview 00:07

WithSpinner HOC Preview 10:58

WithSpinner HOC 2 Preview 08:46

Quick Note About Next Lesson Preview 00:09

Optional: How To Build HOCs Preview 19:19

Observables + Observer Pattern Preview 12:41

Promise Pattern Preview 11:56

Redux Thunk Preview 19:48

What Does Redux Thunk Do? Preview 02:40

Debugging Our Code Preview 10:44

Introduction to Sagas Preview 11:59

Correction about Saga flow Preview 00:35

Generator Functions Preview 08:38

Quick Note About Sagas Preview 00:21

redux-saga Preview 10:50

Redux Thunk Into Saga Preview 09:43

take(), takeEvery(), takeLatest() Preview 15:27

Root Saga Preview 05:00

Planning Ahead With Sagas Preview 04:45

Google Sign In Into Sagas Preview 19:26

Email Sign In Into Sagas Preview 13:21

Reviewing Our Sagas Preview 10:01

Recreating Persistence Preview 08:21

Note: Small correction on user saga Preview 00:41

Sign Out With Sagas Preview 07:34

Clear Cart Saga Preview 09:37

Solution: Sign Up Saga Preview 12:56

React Hooks Introduction (useState) Preview 11:48

Why Did React Add Hooks? Preview 00:07

useEffect Preview 14:51

Hook Rules Preview 02:55

Converting Class Components With useState Preview 08:11

useEffect In Our App Preview 11:51

useEffect as ComponentWillUnmount() Preview 06:40

useEffect Cheat Sheet Preview 00:11

Custom Hooks Preview 13:50

Custom Hooks 2 Preview 04:42

useReducer Preview 08:32

Should You Adopt Hooks? Preview 12:56

React-Redux Hooks Preview 10:38

useDispatch Preview 07:54

useParams Part 1 Preview 05:43

useParams Part 2 Preview 05:51

useState Part 1 Preview 09:21

useState Part 2 Preview 08:15

useEffect Part 1 Preview 09:10

useEffect Part 2 Preview 07:45

useEffect Part 3 Preview 10:25

useMemo Preview 04:44

useLayoutEffect Preview 07:46

About This Section Preview 00:34

Introduction To Backend Preview 12:23

Cloning From This Point On Preview 02:18

Note: Do not push to github until end of section! Preview 00:18

Creating our Server Inside the Project Preview 10:33

Building A Basic Server Preview 14:04

Note: You don't need the CORS library anymore Preview 00:21

What We Are Building Preview 04:33

Quick note about next lecture: Stripe Dashboard and Private Keys Preview 00:59

Backend Payment Route Preview 10:07

Connecting Client To Server Preview 09:23

NOTE: Ignoring client node_modules Preview 00:29

Deploying To Production Preview 10:30

Quick note about cloning this repo Preview 00:17

Introduction To Context API Preview 06:22

Context Consumer + useContext Hook Preview 12:11

Context Provider Preview 13:29

Cart Context Preview 14:04

Provider Context Pattern Preview 16:53

Provider Context Pattern 2 Preview 11:20

Redux vs Context API Preview 09:26

Introduction To GraphQL Preview 16:02

Course Guideline + Github Links Preview 00:10

Note about next lesson Preview 00:19

GraphQL Playground Preview 12:37

Backend Code Preview 00:29

GraphQL Playground 2 Preview 07:34

Introduction To Apollo Preview 14:05

Apollo Container Preview 10:43

Note: Destructuring change in next lesson Preview 00:47

Query With Variables Preview 10:14

GraphQL vs Redux Preview 08:31

Mutations On The Client Preview 15:34

Resources: Mutations Preview 00:09

Mutations On The Client 2 Preview 08:22

Adding Items With Apollo Preview 12:43

Adding Items With Apollo 2 Preview 05:56

Note: Compose in next lesson Preview 00:41

CartItem Count With Apollo Preview 15:18

Exercises: Adding More GraphQL Preview 00:12

Should You Use GraphQL? Preview 06:54

Mobile Responsiveness Preview 10:22

Mobile Responsiveness 2 Preview 14:10

Exercise: Mobile Friendly App Preview 00:31

Code Splitting Introduction Preview 13:30

Introducing React Lazy Preview 03:02

React Lazy + Suspense Preview 10:34

Error Boundaries Preview 16:07

React.memo, PureComponent, shouldComponentUpdate Preview 15:31

Update on React Devtools Preview 00:56

Performance In Our App Preview 09:51

useCallback Preview 10:50

useMemo Preview 05:53

Gzipping and Compression Preview 07:01

React Preview 05:38

React Performance Cheat Sheet Preview 00:10

Don't Overcomplicate Preview 02:05

Be A Late Follower Preview 02:56

Break Things Down Preview 01:38

It Will Never Be Perfect Preview 01:53

Learning Guideline Preview 00:10

Endorsements On LinkedIn Preview 00:39

Become An Alumni Preview 00:37

Common React Interview Questions Preview 00:01

Course Review

The Final Challenge

Note About This Section Preview 00:16

Progressive Web Apps Preview 12:54

Opt-In Service Worker in CRA Preview 00:37

Resources: Progressive Web Apps Preview 00:16

Progressive Web Apps Examples Preview 06:15

PWA - HTTPS Preview 06:11

Note on server.js code Preview 00:20

Resources: PWA - HTTPS Preview 00:20

PWA - App Manifest Preview 06:12

PWA - Service Workers Preview 13:15

Resources: PWA - Service Workers Preview 00:16

PWA - Final Thoughts Preview 02:03

Update for CRA v4.0.0+ and React 17+ Preview 00:50

Converting Our App To PWA Preview 10:43

Addendum to Server.js Preview 00:41

Firebase Security Rules Preview 08:44

User Security Rule Preview 10:56

User Security Rule 2 Preview 07:21

More Security Rules Preview 05:51

Coding Challenge: Firebase Cart Preview 00:47

Note About This Section Preview 00:31

Section Overview Preview 06:21

Updated Code For This Section Preview 00:06

Types of Tests Preview 02:58

Testing Libraries Preview 15:28

Note: The Next Videos Preview 00:27

Unit Tests Preview 02:42

Integration Tests Preview 02:46

Automation Testing Preview 04:27

Final Note On Testing Preview 02:56

Setting Up Jest Preview 11:29

Our First Tests Preview 11:10

Writing Tests Preview 05:31

Quick Note: Upcoming API Endpoint + ES6 Modules Preview 00:42

Asynchronous Tests Preview 10:18

Asynchronous Tests 2 Preview 11:41

Resources: Jest Cheat Sheet Preview 00:12

Mocks and Spies Preview 12:50

Note: Testing React Apps Preview 00:09

Enzyme vs React Testing Library Preview 00:32

Introduction To Enzyme Preview 14:29

Quick Note: Empty Snapshots Preview 00:17

Snapshot Testing Preview 09:29

Snapshot Testing + Code Coverage Preview 04:54

Testing Stateful Components Preview 11:16

Quick Recap Preview 02:35

Testing Connected Components Preview 23:50

Testing Connected Components 2 Preview 03:35

Testing Reducers Preview 14:57

Testing Actions Preview 18:27

Section Review Preview 04:11

Testing In Our Master Project Preview 00:42

Introduction to Webpack + Babel Preview 12:10

Webpack Config Preview 10:40

Quick Note About This Section Preview 00:47

Introduction to Gatsby.js Preview 07:55

Starting a Gatsby Project Preview 09:03

Gatsby Pages Preview 09:29

Gatsby GraphQL + Markdown Preview 08:39

Building Our Blog 1 Preview 10:53

Building Our Blog 2 Preview 09:12

Building Our Blog 3 Preview 06:54

Building Our Blog 4 Preview 07:26

Building Our Blog 5 Preview 09:32

Contributing To Open Source Preview 14:44

Contributing To Open Source 2 Preview 09:42

Exercise: Contribute To Open Source Preview 00:32

AMA - 100,000 Students!! Preview 38:30

Coding Challenges Preview 00:29

Bonus Lecture Preview 00:15