Welcome to my React Learning repository! This repository is dedicated to helping me learn and practice React. It contains a variety of exercises, tutorial codes, and mini-projects designed to enhance my understanding of React.
- Introduction with React
- React vs. Vanilla JS
- Pure React
- useState, useEffect, useRef and useReducer hooks
- Fetching data from APIs with useEffect
- React Router: Building Single-Page Applications (SPA)
- Context API & Context API with useReducer hook
- Redux and Modern Redux Toolkit (With Thunks)
- React Router with Data Loading
- Tailwind CSS
- Redux and advanced React Router
- Supabase: Buiding a Back-End
- React Query
- Advanced React Patterns
- Implementing more features: Authentication, Dark Mode and Dashboard etc.
- Next.js
- Pizza Menu
- Date Counter
- Flash Card
- Travel List
- Tip Calculator
- Eat'N Split
- Use Popcorn
- Star Rating Reusable Component
- Currency Converter
- Classy Weather
- Geolocation
- React Quiz using Props and Context API
- Create a bank account with useReducer
- Worldwide - Keep track of your adventures
- Atomic Blog using Props and Context API
The folder 00_introduction/react
is created with minimal requirements of React and _minimal-react-template
is the template for the minimal requirements of React framework.
In this repository, multiple projects (From the folder 03\_pizza-menu
onwards) was bootstrapped with Create React App.
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
Note: this is a one-way operation. Once you eject
, you can't go back!
If you aren't satisfied with the build tool and configuration choices, you can eject
at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject
will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use eject
. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
From 24_react-router
onwards, the React project is scaffolded using Vite using npm create vite
.
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
This repository follows the Udemy Course The Ultimate React Course 2024: React, Next.js, Redux & More by Jonas Schmedtmann.