Udemy - Complete React Developer in 2019 (w/ Redux, Hooks, GraphQL)

Category: Study


Posted on 2019-08-13, updated at 2019-08-19, by phaelx.

Description



Date: Aug 2019
Author: Andrei Neagoie

Size: 16 GB
Format: MP4
Download     >>    https://dropapk.to/kb8a7dke72y4
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 JavaScript to write clean code


Course content

Introduction
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community

React Key Concepts
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer

React Basics
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review

Master Project: Setting Up E-commerce Project
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items

Master Project: React Router and Routing
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()

Master Project: Forms + Components
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component

Master Project: Firebase + User Authentication
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review

Master Project: Redux 1
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout

Master Project: Session Storage + Persistence
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist

Master Project: Redux 2
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component

Master Project: Advanced Routing
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying

Master Project: State Normalization
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow

Master Project: Stripe Payments Part 1
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead

Master Project: Deploying To Production
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build

Master Project: CSS in JS - styled-components
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components

Master Project: Advanced Redux + Firebase
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux

Master Project: HOC Patterns
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs

Master Project: Asynchronous Redux
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code

Master Project: Container Pattern
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff

Master Project: Redux-Saga
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga

Master Project: React Hooks
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback

Master Project: Stripe Payments Part 2 - Backend
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production

Master Project: Context API
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API

Master Project: GraphQL + Apollo
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?

Master Project: Mobile Support
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App

Master Project: React Performance
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App
   Code Splitting Introduction
   Introducing React Lazy
   React Lazy + Suspense
   Error Boundaries
   React.memo, PureComponent, shouldComponentUpdate
   Performance In Our App
   useCallback
   useMemo
   Gzipping and Compression

React Interview Questions + Advice
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App
   Code Splitting Introduction
   Introducing React Lazy
   React Lazy + Suspense
   Error Boundaries
   React.memo, PureComponent, shouldComponentUpdate
   Performance In Our App
   useCallback
   useMemo
   Gzipping and Compression
   Don't Overcomplicate
   Be A Late Follower
   Break Things Down
   It Will Never Be Perfect
   Learning Guideline
   Endorsements On LinkedIn
   Become An Alumni
   Common React Interview Questions

Bonus: Progressive Web App
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App
   Code Splitting Introduction
   Introducing React Lazy
   React Lazy + Suspense
   Error Boundaries
   React.memo, PureComponent, shouldComponentUpdate
   Performance In Our App
   useCallback
   useMemo
   Gzipping and Compression
   Don't Overcomplicate
   Be A Late Follower
   Break Things Down
   It Will Never Be Perfect
   Learning Guideline
   Endorsements On LinkedIn
   Become An Alumni
   Common React Interview Questions
   Note About This Section
   Progressive Web Apps
   Resources: Progressive Web Apps
   Progressive Web Apps Examples
   PWA - HTTPS
   Resources: PWA - HTTPS
   PWA - App Manifest
   PWA - Service Workers
   Resources: PWA - Service Workers
   PWA - Final Thoughts
   Converting Our App To PWA

Bonus: Testing
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App
   Code Splitting Introduction
   Introducing React Lazy
   React Lazy + Suspense
   Error Boundaries
   React.memo, PureComponent, shouldComponentUpdate
   Performance In Our App
   useCallback
   useMemo
   Gzipping and Compression
   Don't Overcomplicate
   Be A Late Follower
   Break Things Down
   It Will Never Be Perfect
   Learning Guideline
   Endorsements On LinkedIn
   Become An Alumni
   Common React Interview Questions
   Note About This Section
   Progressive Web Apps
   Resources: Progressive Web Apps
   Progressive Web Apps Examples
   PWA - HTTPS
   Resources: PWA - HTTPS
   PWA - App Manifest
   PWA - Service Workers
   Resources: PWA - Service Workers
   PWA - Final Thoughts
   Converting Our App To PWA
   Note About This Section
   Section Overview
   Types of Tests
   Testing Libraries
   Note: The Next Videos
   Unit Tests
   Integration Tests
   Automation Testing
   Final Note On Testing
   Setting Up Jest
   Our First Tests
   Writing Tests
   Asynchronous Tests
   Asynchronous Tests 2
   Resources: Jest Cheat Sheet
   Mocks and Spies
   Note: Testing React Apps
   Introduction To Enzyme
   Snapshot Testing
   Snapshot Testing + Code Coverage
   Testing Stateful Components
   Quick Recap
   Testing Connected Components
   Testing Connected Components 2
   Testing Reducers
   Testing Actions
   Section Review
   Testing In Our Master Project

Bonus: Webpack + Babel
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App
   Code Splitting Introduction
   Introducing React Lazy
   React Lazy + Suspense
   Error Boundaries
   React.memo, PureComponent, shouldComponentUpdate
   Performance In Our App
   useCallback
   useMemo
   Gzipping and Compression
   Don't Overcomplicate
   Be A Late Follower
   Break Things Down
   It Will Never Be Perfect
   Learning Guideline
   Endorsements On LinkedIn
   Become An Alumni
   Common React Interview Questions
   Note About This Section
   Progressive Web Apps
   Resources: Progressive Web Apps
   Progressive Web Apps Examples
   PWA - HTTPS
   Resources: PWA - HTTPS
   PWA - App Manifest
   PWA - Service Workers
   Resources: PWA - Service Workers
   PWA - Final Thoughts
   Converting Our App To PWA
   Note About This Section
   Section Overview
   Types of Tests
   Testing Libraries
   Note: The Next Videos
   Unit Tests
   Integration Tests
   Automation Testing
   Final Note On Testing
   Setting Up Jest
   Our First Tests
   Writing Tests
   Asynchronous Tests
   Asynchronous Tests 2
   Resources: Jest Cheat Sheet
   Mocks and Spies
   Note: Testing React Apps
   Introduction To Enzyme
   Snapshot Testing
   Snapshot Testing + Code Coverage
   Testing Stateful Components
   Quick Recap
   Testing Connected Components
   Testing Connected Components 2
   Testing Reducers
   Testing Actions
   Section Review
   Testing In Our Master Project
   Introduction to Webpack + Babel
   Webpack Config

Bonus: Build a GatsbyJS Blog
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App
   Code Splitting Introduction
   Introducing React Lazy
   React Lazy + Suspense
   Error Boundaries
   React.memo, PureComponent, shouldComponentUpdate
   Performance In Our App
   useCallback
   useMemo
   Gzipping and Compression
   Don't Overcomplicate
   Be A Late Follower
   Break Things Down
   It Will Never Be Perfect
   Learning Guideline
   Endorsements On LinkedIn
   Become An Alumni
   Common React Interview Questions
   Note About This Section
   Progressive Web Apps
   Resources: Progressive Web Apps
   Progressive Web Apps Examples
   PWA - HTTPS
   Resources: PWA - HTTPS
   PWA - App Manifest
   PWA - Service Workers
   Resources: PWA - Service Workers
   PWA - Final Thoughts
   Converting Our App To PWA
   Note About This Section
   Section Overview
   Types of Tests
   Testing Libraries
   Note: The Next Videos
   Unit Tests
   Integration Tests
   Automation Testing
   Final Note On Testing
   Setting Up Jest
   Our First Tests
   Writing Tests
   Asynchronous Tests
   Asynchronous Tests 2
   Resources: Jest Cheat Sheet
   Mocks and Spies
   Note: Testing React Apps
   Introduction To Enzyme
   Snapshot Testing
   Snapshot Testing + Code Coverage
   Testing Stateful Components
   Quick Recap
   Testing Connected Components
   Testing Connected Components 2
   Testing Reducers
   Testing Actions
   Section Review
   Testing In Our Master Project
   Introduction to Webpack + Babel
   Webpack Config
   Quick Note About This Section
   Introduction to Gatsby.js
   Starting a Gatsby Project
   Gatsby Pages
   Gatsby GraphQL + Markdown
   Building Our Blog 1
   Building Our Blog 2
   Building Our Blog 3
   Building Our Blog 4
   Building Our Blog 5

Appendix 1: Key Developer Concepts
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App
   Code Splitting Introduction
   Introducing React Lazy
   React Lazy + Suspense
   Error Boundaries
   React.memo, PureComponent, shouldComponentUpdate
   Performance In Our App
   useCallback
   useMemo
   Gzipping and Compression
   Don't Overcomplicate
   Be A Late Follower
   Break Things Down
   It Will Never Be Perfect
   Learning Guideline
   Endorsements On LinkedIn
   Become An Alumni
   Common React Interview Questions
   Note About This Section
   Progressive Web Apps
   Resources: Progressive Web Apps
   Progressive Web Apps Examples
   PWA - HTTPS
   Resources: PWA - HTTPS
   PWA - App Manifest
   PWA - Service Workers
   Resources: PWA - Service Workers
   PWA - Final Thoughts
   Converting Our App To PWA
   Note About This Section
   Section Overview
   Types of Tests
   Testing Libraries
   Note: The Next Videos
   Unit Tests
   Integration Tests
   Automation Testing
   Final Note On Testing
   Setting Up Jest
   Our First Tests
   Writing Tests
   Asynchronous Tests
   Asynchronous Tests 2
   Resources: Jest Cheat Sheet
   Mocks and Spies
   Note: Testing React Apps
   Introduction To Enzyme
   Snapshot Testing
   Snapshot Testing + Code Coverage
   Testing Stateful Components
   Quick Recap
   Testing Connected Components
   Testing Connected Components 2
   Testing Reducers
   Testing Actions
   Section Review
   Testing In Our Master Project
   Introduction to Webpack + Babel
   Webpack Config
   Quick Note About This Section
   Introduction to Gatsby.js
   Starting a Gatsby Project
   Gatsby Pages
   Gatsby GraphQL + Markdown
   Building Our Blog 1
   Building Our Blog 2
   Building Our Blog 3
   Building Our Blog 4
   Building Our Blog 5
   map()
   Promises
   filter()
   includes()
   CWD 2019: Git + Github
   CWD 2019: Git + Github 2
   Async Await
   find()
   reduce()
   Memoization
   Currying

Bonus: Coupon Codes + Freebies
   Course Outline
   Join Our Online Classroom!
   Exercise: Meet The Community
   React Concepts
   The Birth of React.js
   Declarative vs Imperative
   Component Architecture
   One Way Data Flow
   UI Library
   How To Be A Great React Developer
   Section Overview
   Environment Setup for Mac
   Environment Setup For Windows
   NPM vs YARN
   Yihua's VSCode font and settings
   Create React App
   Create React App 2
   React Project Setup
   Don't Eject
   Class Components
   Thinking In JSX
   Dynamic Content
   Optional: map() + key attribute
   Single Page Application
   Fetching Content
   Optional: Promises
   Architecting Our App
   Card List Component
   Card Component
   Exercise: Breaking Into Components
   State vs Props
   SearchField State
   React Events
   Filtering State
   Optional: filter(), includes()
   Search Box Component
   Exercise: Where To Put State?
   Class Methods and Arrow Functions
   Exercise: Event Binding
   Quick Note: Binding in React
   Optional: Git + Github
   Optional: Connecting With SSH To Github
   Deploying Our App
   React and ReactDOM
   Revisiting VirtualDOM + Unidirectional Data Flow
   Asynchronous setState
   Introducing Lifecycle Methods
   React Lifecycle Methods - Mounting
   React Lifecycle Methods - Updating
   React Lifecycle Methods - Unmounting
   When should we use a functional component vs a class component?
   Section Review
   The Long Road Ahead
   Project Overview
   Github + Project Repositories
   Course Guideline + Github Links
   Quick Note About Github
   E-commerce Homepage + SASS setup
   Project Files + Modules
   Project Component Architecture
   CSS and SCSS files
   Homepage and Directory Components
   Styling Menu Items
   Routing In React
   Routing In Our Project
   React Router Dom
   withRouter()
   Shopping Data
   Shop Page
   Collection Item
   Header Component
   Resources: Importing SVG In React
   Introducing Forms In React
   Sign In Component
   Form Input Component
   Custom Button Component
   Section Overview
   Firebase Introduction
   Adding a Project to Firebase
   Note about Github
   Google Sign In Authentication
   Cloning From This Point On
   Google Sign In Authentication 2
   Optional: How to fix 403:restricted_client error
   Google Sign In Authentication 3
   Firebase Firestore
   Optional: Async Await
   Storing User Data In Firebase
   Storing User Data In Our App
   Sign Up Component
   Sign Up With Email and Password
   Sign In With Email and Password
   Firebase unsubscribe method
   Section Review
   Section Overview
   Redux Introduction
   Redux Concepts
   Redux In Our Application
   Redux Actions and Reducers
   Setting Up Redux 1
   Setting Up Redux 2
   connect() and mapStateToProps
   mapDispatchToProps
   User Redirect and User Action Type
   Cart Component
   Card Dropdown Component
   Implementing Redux In Cart
   Add To Cart Styling
   Cart Item Reducer
   Adding Multiple Items To Cart
   Optional: find()
   Cart Item Component
   Optional: reduce()
   Selectors in Redux
   Optional: Memoization
   Reselect Library
   User Selectors
   Checkout Page
   Checkout Page 2
   Extensible Code
   Dispatch Action Shorthand
   Checkout Item Component
   Remove Items From Cart
   Remove Items At Checkout
   Local Storage and Session Storage
   Redux Persist
   Directory State Into Redux
   Collection State Into Redux
   Collection Overview Component
   Nested Routing in Shop Page
   Improving Naming Of Component
   Collection Routing and Selector
   Optional: Currying
   Data Normalization + Collection Page
   Optional: Hash Tables vs Arrays
   Data Flow In Our App
   Thinking About Data Flow
   Introduction To Stripe
   Stripe Integration
   Cloning From This Point On
   Finishing Touches + Look Ahead
   Deploying To Heroku
   Resources: Buildpack
   Linking Github to Heroku
   Optional: Git + Heroku commands
   Optimizing Production Build
   CSS in JS
   styled-components
   styled-components In Our App
   Thinking About Tradeoffs
   styled-components In Our App 2
   styled-components In Our App 3
   Exercise: styled-components
   Section Overview
   Quick Note: Firebase
   Firebase Refresher
   Firebase Refresher 2
   Moving Our Shop Data To Firebase
   Moving Our Shop Data To Firebase 2
   Reviewing What We Have Done
   Bringing Shop Data To Our App
   Adding Shop Data To Redux
   WithSpinner HOC
   WithSpinner HOC 2
   Quick Note About Next Lesson
   Optional: How To Build HOCs
   Observables + Observer Pattern
   Promise Pattern
   Redux Thunk
   What Does Redux Thunk Do?
   Debugging Our Code
   Container Pattern
   Refactoring Is A Tradeoff
   Introduction to Sagas
   Generator Functions
   Quick Note About Sagas
   redux-saga
   Redux Thunk Into Saga
   take(), takeEvery(), takeLatest()
   Root Saga
   Planning Ahead With Sagas
   Google Sign In Into Sagas
   Email Sign In Into Sagas
   Reviewing Our Sagas
   Recreating Persistence
   Sign Out With Sagas
   Clear Cart Saga
   Solution: Sign Up Saga
   React Hooks Introduction (useState)
   Why Did React Add Hooks?
   useEffect
   Hook Rules
   Converting Class Components With useState
   useEffect In Our App
   useEffect as ComponentWillUnmount()
   useEffect Cheat Sheet
   Custom Hooks
   Custom Hooks 2
   useReducer
   useContext + useMemo + useCallback
   About This Section
   Introduction To Backend
   Cloning From This Point On
   Creating our Server Inside the Project
   Building A Basic Server
   What We Are Building
   Backend Payment Route
   Connecting Client To Server
   Deploying To Production
   Quick note about cloning this repo
   Introduction To Context API
   Context Consumer + useContext Hook
   Context Provider
   Cart Context
   Provider Context Pattern
   Provider Context Pattern 2
   Redux vs Context API
   Introduction To GraphQL
   Course Guideline + Github Links
   GraphQL Playground
   Backend Code
   GraphQL Playground 2
   Introduction To Apollo
   Apollo Container
   Query With Variables
   GraphQL vs Redux
   Mutations On The Client
   Resources: Mutations
   Mutations On The Client 2
   Adding Items With Apollo
   Adding Items With Apollo 2
   CartItem Count With Apollo
   Exercises: Adding More GraphQL
   Should You Use GraphQL?
   Mobile Responsiveness
   Mobile Responsiveness 2
   Exercise: Mobile Friendly App
   Code Splitting Introduction
   Introducing React Lazy
   React Lazy + Suspense
   Error Boundaries
   React.memo, PureComponent, shouldComponentUpdate
   Performance In Our App
   useCallback
   useMemo
   Gzipping and Compression
   Don't Overcomplicate
   Be A Late Follower
   Break Things Down
   It Will Never Be Perfect
   Learning Guideline
   Endorsements On LinkedIn
   Become An Alumni
   Common React Interview Questions
   Note About This Section
   Progressive Web Apps
   Resources: Progressive Web Apps
   Progressive Web Apps Examples
   PWA - HTTPS
   Resources: PWA - HTTPS
   PWA - App Manifest
   PWA - Service Workers
   Resources: PWA - Service Workers
   PWA - Final Thoughts
   Converting Our App To PWA
   Note About This Section
   Section Overview
   Types of Tests
   Testing Libraries
   Note: The Next Videos
   Unit Tests
   Integration Tests
   Automation Testing
   Final Note On Testing
   Setting Up Jest
   Our First Tests
   Writing Tests
   Asynchronous Tests
   Asynchronous Tests 2
   Resources: Jest Cheat Sheet
   Mocks and Spies
   Note: Testing React Apps
   Introduction To Enzyme
   Snapshot Testing
   Snapshot Testing + Code Coverage
   Testing Stateful Components
   Quick Recap
   Testing Connected Components
   Testing Connected Components 2
   Testing Reducers
   Testing Actions
   Section Review
   Testing In Our Master Project
   Introduction to Webpack + Babel
   Webpack Config
   Quick Note About This Section
   Introduction to Gatsby.js
   Starting a Gatsby Project
   Gatsby Pages
   Gatsby GraphQL + Markdown
   Building Our Blog 1
   Building Our Blog 2
   Building Our Blog 3
   Building Our Blog 4
   Building Our Blog 5
   map()
   Promises
   filter()
   includes()
   CWD 2019: Git + Github
   CWD 2019: Git + Github 2
   Async Await
   find()
   reduce()
   Memoization
   Currying
   Coupon Codes


Sponsored High Speed Downloads
9174 dl's @ 2770 KB/s
Download Now [Full Version]
6499 dl's @ 2229 KB/s
Download Link 1 - Fast Download
5711 dl's @ 3069 KB/s
Download Mirror - Direct Download



Search More...
Udemy - Complete React Developer in 2019 (w/ Redux, Hooks, GraphQL)

Search free ebooks in ebookee.com!


Related Archive Books

Archive Books related to "Udemy - Complete React Developer in 2019 (w/ Redux, Hooks, GraphQL)":



Links
Download this book

No active download links here?
Please check the description for download links if any or do a search to find alternative books.


Related Books


Comments

No comments for "Udemy - Complete React Developer in 2019 (w/ Redux, Hooks, GraphQL)".


    Add Your Comments
    1. Download links and password may be in the description section, read description carefully!
    2. Do a search to find mirrors if no download links or dead links.
    Back to Top