A comprehensive collection of React.js learning projects built with Vite, covering fundamental concepts to advanced topics.
- Overview
- Projects
- Getting Started
- Prerequisites
- Installation
- Running Projects
- Learning Path
- Technologies Used
- Contributing
- Author
This repository contains a progressive series of React.js projects designed to help learn React concepts from basics to advanced topics. Each project focuses on specific React features and best practices, built with Vite for fast development experience.
Location: 01_State_Variables/
- Focus: React useState hook
- Topics: Component state management, state updates, re-rendering
- Key Concepts: useState, state initialization, functional updates
Location: 02_Forms/
- Focus: Form handling in React
- Topics: Controlled components, form validation, event handling
- Key Concepts: onChange, onSubmit, form state management
Location: 03_Components/
- Focus: Component composition and structure
- Topics: Creating reusable components, component hierarchy
- Key Concepts: JSX, component props, component composition
Location: 04_Props/
- Focus: Data passing between components
- Topics: Props drilling, prop types, default props
- Key Concepts: Component communication, data flow
Location: 05_Context API/
- Focus: Global state management
- Topics: Context creation, providers, consumers
- Key Concepts: useContext, createContext, avoiding prop drilling
Location: 06_Hooks/
- Focus: React hooks ecosystem
- Topics: Built-in hooks, custom hooks, hook rules
- Key Concepts: useEffect, useReducer, useMemo, useCallback
Location: 07_Routing-1/
- Focus: Basic routing concepts
- Topics: Single Page Applications, route setup
- Key Concepts: React Router basics, navigation
Location: 08_Routing-2/
- Focus: Advanced routing features
- Topics: Dynamic routes, nested routing, route guards
- Key Concepts: useParams, useNavigate, protected routes
Location: 09_API_Fetching_React_Bootstrap_Final/
- Focus: Complete application with external APIs
- Topics: Data fetching, UI frameworks, real-world application
- Key Concepts: fetch/axios, Bootstrap integration, loading states
Before running these projects, make sure you have:
- Node.js (version 16.0 or higher)
- npm or yarn package manager
- Git for version control
-
Clone the repository:
git clone https://github.com/zeeshanali90233/react-js-learning-projects.git cd react-js-learning-projects
-
Navigate to any project directory:
cd 01_State_Variables
-
Install dependencies:
npm install
Each project can be run independently:
# Navigate to the project directory
cd 01_State_Variables
# Install dependencies (if not already done)
npm install
# Start the development server
npm run dev
# Open browser and visit http://localhost:5173
Follow this recommended sequence for optimal learning:
01_State_Variables → 02_Forms → 03_Components → 04_Props →
05_Context_API → 06_Hooks → 07_Routing-1 → 08_Routing-2 →
09_API_Fetching_React_Bootstrap_Final
Each project builds upon concepts from previous projects, creating a comprehensive learning experience.
- ⚛️ React.js - Frontend library for building user interfaces
- ⚡ Vite - Next generation frontend tooling
- 📦 npm - Package manager
- 🎨 CSS3 - Styling and layouts
- 🟨 JavaScript (ES6+) - Programming language
🅱️ React Bootstrap - UI framework (Final project)
In each project directory, you can run:
npm run dev
- Starts the development servernpm run build
- Builds the app for productionnpm run preview
- Preview the production build locallynpm run lint
- Run ESLint for code quality
Contributions are welcome! Feel free to:
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Each project includes its own README with specific instructions
- Projects are built with Vite for fast development experience
- Code follows React best practices and modern JavaScript standards
- All projects are responsive and mobile-friendly
Zeeshan Ali
- GitHub: @zeeshanali90233
- Email: [email protected]
This project is open source and available under the MIT License.