- Introduction of React
- What is ReactJS?
 - Main features of React
 - What does it mean to be declarative?
 
 - Setup
- Requirements
 - Create-react-app
 - Vite
 - Recommended extensions for VSCode
 
 - Create-react-app(CRA) vs Vite
 
- Components
- My first component
 - Reusable components
 - JSX
 
 - Props
- What are props
 - Props default value
 - Props as children
 
 - Class Based Components (legacy)
- Class based vs Functional components
 
 
- Hooks
- What is a Hook
 - Hook Rule
 
 - State
- useState Hook
 - What does the useState call do?
 - What do we pass to useState as an argument?
 - When to use it?
 - Import useState
 - Initialize useState
 - Read State
 - Update State
 - What Can State Hold
 - Updating Objects and Arrays in State
 
 - Effects
- useEffect Hook
 - What are side effects
 - When to use it
 - Dependencies
 - The useEffect Cleanup function
 
 
- Rendering Techniques
- Conditional rendering
 - Rendering lists
- Rendering data from arrays
 - Filtering data
 - Key prop
 
 
 - Styling React components
- Inline style
 - CSS stylesheet
 - CSS modules
 - Dynamic styles
 
 - Events
- Listening to event handlers
 
 
- Forms in React
 - React Context API
- createContext
 - useContext Hook
 - Context provider
 
 - Global State Management
 
- Other React built-in hooks
- useRef
 - useReducer
 - Performance Hooks
- useMemo
 - useCallback
 
 
 - React Custom Hooks
- What are they
 - How to create them
 - How to use them
 
 
- React Router Library
- Installing React Router
 - Defining routes
 - Navigate between routes
 - Error pages
 - Dynamic routes
 - Protected routes
 
 
- Debugging React apps
- React DevTools
 
 - Testing React apps
- Different kinds of tests
 - Tools
 - Writing our first test
 - Testing Asynchronous Code
 - Working with mocks
 
 - Deploying React apps
- Steps
- Test and optimize your code.
- Lazy loading
 
 - Build the Application
 - Deploy
 
 - Test and optimize your code.
 
 - Steps