- Package Manager (npm/Yarn)
- Compiler Setup
- ES6/ES2015
- TypeScript (if applicable)
- React Overview
- Elements
- JSX
- Virtual DOM
- Project Setup (Create React App)
- Lab 1: Creating a New Project
- Lab 2: Running Your Project
- Lab 3: Styles Using CSS
- Components
- Lab 4: Your First Component
- Lab 5: Creating Data Structures
- Props
- PropTypes (if applicable)
- React with TypeScript (if applicable)
- Lists
- Lab 6: Passing Data into a Component
- Lab 7: Displaying List Data
- Lab 8: More Reusable Components
- Events
- State
- Conditional Rendering
- Component Architecture
- Lab 9: Responding to an Event
- Lab 10: Create a Form
- Lab 11: Communicating from Child to Parent Component
- Lab 12: Hiding and Showing Components
- Lab 13: More Component Communication
- Lab 14: Multiple Levels of Component Communication
- Forms
- Lab 15: Form Values to State
- Lab 16: Form Validation
- Backend API Setup
- Promises & Async/Await
- HTTP
- Lifecycle
- Lab 17: Setup Backend REST API
- Lab 18: HTTP GET
- Lab 19: HTTP PUT
- Routing (using React Router)
- Lab 20: Router Basics
- Lab 21: Route Parameters
- Build & Deploy
- Lab 22: Build & Deploy
- Redux (Store, State, Reducers, Actions, Action Creators)
- Using Redux with React (React Redux Library)
- Asynchronous Actions (Redux Thunk)
- Putting It All Together (React & Redux & Thunk)
- Redux with TypeScript (if applicable)
- React & Redux with TypeScript (if applicable)
- Lab 23: Redux Install
- Lab 24: Redux Actions & Reducer
- Lab 25: Redux with React
- Testing
- Unit Testing Lab 1: Shallow Rendering with Enzyme
- Unit Testing Lab 2: Snapshot Tests
- Unit Testing Lab 3: Testing Props
- Unit Testing Lab 4: Nested Components
- Unit Testing Lab 5: Container Components
- Unit Testing Lab 6: Testing Forms
- Unit Testing Lab 7: Action Tests
- Unit Testing Lab 8: Reducer Tests
- Unit Testing Lab 9: API Tests
- Best Practices (Code Organization & Conventions)
- Appendix A: How to Skip Labs
- Styling
- Hooks
- UI Components