A complete hands-on journey to learn React.js from fundamentals to advanced concepts.
This repository documents my progress while learning React through structured lessons, practical examples, challenges, and mini-projects.
The goal of this repository is not only to learn React concepts, but also to understand how professional React applications are designed, optimized, tested, and deployed.
React Learning Journey is a structured learning repository that covers:
- React fundamentals
- Modern React hooks
- Component architecture
- State management
- Routing
- Performance optimization
- Testing
- Deployment
- Professional project structure
Each lesson contains:
- ๐ Concept explanation
- ๐ป Practical implementation
- ๐งฉ Challenges
- ๐๏ธ Mini projects
- ๐ Git commits for progress tracking
- React.js
- JavaScript ES6+
- JSX
- HTML5
- CSS3
- Vite
- npm
- VS Code
- Git & GitHub
- React Router
- Context API
- React Hooks
- React Testing Library
- Vitest
src/
โ
โโโ assets/
โ
โโโ challenges/
โ โโโ 01-jsx
โ โโโ 02-components
โ โโโ 03-props
โ โโโ 04-state
โ โโโ 05-events
โ โโโ 06-conditional-rendering
โ โโโ 07-lists-and-keys
โ โโโ 08-useEffect
โ โโโ 09-api-calls
โ โโโ 10-custom-hooks
โ โโโ 11-forms
โ โโโ 12-react-router
โ โโโ 13-context-api
โ โโโ 14-useReducer
โ โโโ 15-performance-optimization
โ
โโโ lessons/
โ โโโ 01-jsx
โ โโโ 02-components
โ โโโ 03-props
โ โโโ 04-state
โ โโโ 05-events
โ โโโ 06-conditional-rendering
โ โโโ 07-lists-and-keys
โ โโโ 08-useEffect
โ โโโ 09-api-calls
โ โโโ 10-custom-hooks
โ โโโ 11-forms
โ โโโ 12-react-router
โ โโโ 13-context-api
โ โโโ 14-useReducer
โ โโโ 15-performance-optimization
โ
โโโ App.jsx
โโโ main.jsx
โโโ index.css
Learn:
- JSX syntax
- Embedding JavaScript
- Expressions
- JSX rules
- Rendering elements
Learn:
- Functional components
- Component composition
- Reusable UI
- Component organization
Learn:
- Passing data between components
- Props destructuring
- Children props
- Reusable components
Learn:
- useState hook
- State updates
- Managing component data
- State-driven UI
Learn:
- Event handling
- Click events
- Form events
- Event functions
Learn:
- if statements
- Ternary operators
- Logical rendering
- Dynamic UI
Learn:
- Rendering arrays
- map()
- Keys
- Dynamic components
Learn:
- Side effects
- Lifecycle behavior
- Dependencies
- Cleanup functions
Learn:
- Fetch API
- Async/Await
- Loading states
- Error handling
Learn:
- Creating reusable logic
- Custom hooks patterns
- useFetch
- useCounter
Learn:
- Controlled components
- Form handling
- Validation
- Multiple inputs
Learn:
- BrowserRouter
- Routes
- Route parameters
- Navigation
- Protected routes basics
Learn:
- Global state
- createContext
- Provider pattern
- useContext
Learn:
- Reducer pattern
- Actions
- Dispatch
- Complex state management
Learn:
- React.memo
- useMemo
- useCallback
- Preventing unnecessary renders
Each lesson includes practical challenges to apply the concept.
Examples:
Build:
- Counter application
- Theme switcher
- User profile editor
Build:
- User list
- Search functionality
- Loading and error states
Build:
- Registration form
- Validation system
- Contact form
By completing this repository, I aim to:
โ Understand React fundamentals deeply
โ Build reusable components
โ Manage application state effectively
โ Work with APIs
โ Create scalable React structures
โ Write cleaner and maintainable code
โ Understand modern React development practices
โ Prepare for real-world React projects
git clone https://github.com/HaithamAbuDraz/react-learning-journey.gitcd react-learning-journeynpm installnpm run devReact Fundamentals
โโโโโโโโโโโโโโโโโโโโ 100%
Lessons Completed: 15/15
Status: Completed โ
After completing React fundamentals, the next advanced topics will include:
- TypeScript with React
- Advanced React Hooks
- React Design Patterns
- Redux Toolkit
- TanStack Query
- Authentication
- React + Node.js
- Next.js
- Advanced Performance Optimization
- Production React Applications
โญ Structured learning path
โญ Practical coding examples
โญ Challenges for every topic
โญ Clean folder organization
โญ Git-based progress tracking
โญ Beginner โ Professional progression
Haitham Abu Draz
Software Engineering Student | React Developer
If this repository helped you learn React, consider giving it a โญ on GitHub.
Learning never stops. Keep building ๐