7.0 Lesson
- Intro
 - A Better Project Structure
 - Splitting an App Into Components
 - Comparing Stateless and Stateful Components
 - Class-based vs Functional Components
 - class Component Lifecycle Overview
 - Component Creation Lifecycle in Action
 - Component Update Lifecycle (for props Changes)
 - Component Update Lifecycle (for state Changes)
 - Using useEffect() in Functional Components
 - Controlling the useEffect() Behavior
 - Cleaning up with Lifecycle Hooks & useEffect()
 - Cleanup Work with useEffect() - Example
 - Using shouldComponentUpdate for Optimization
 - Optimization Functional Components with React.memo()
 - When should you optimize
 - PureComponent instead of shouldComponentUpdate
 - How React Updates the DOM
 - Rendering Adjacent JSX Element
 - Aux.js
 - Using React Fragment
 - Higher Order Components (HOC) - Introduction
 - Another Form of HOCs
 - Passing Unknown Props
 - Setting State Correctly
 - Using PropTypes
 - Using Refs
 - Refs with React Hooks
 - Understanding Prop Chain Problems
 - Using the Context API
 - contextType & useContext()
 - Wrap Up
 - Useful Resources & Links