Folder and File Structure (React + Vite Installation Structure)
This guide explains the complete folder and file structure for a React project set up with Vite, ideal for beginners who are new to React. Each folder and file is described to help you understand where different parts of your code go.
Project Structure
codeprex/
├── public/
│ └── assets/ # Static assets (e.g., images, fonts)
├── src/
│ ├── components/ # Folder for reusable components
│ │ ├── Header.jsx # Header component
│ │ ├── Footer.jsx # Footer component
│ │ └── StudentCard.jsx # Example card component
│ ├── pages/ # Pages or views
│ │ ├── Home.jsx # Home page
│ │ ├── About.jsx # About page
│ │ └── Contact.jsx # Contact page
│ ├── styles/ # Folder for styling files
│ │ ├── App.css # Main CSS file for App component
│ │ └── components.css # Styles specific to components
│ ├── hooks/ # Custom hooks
│ │ └── useFetch.jsx # Example custom hook for data fetching
│ ├── context/ # Context API files for managing global state
│ │ └── AuthContext.jsx # Authentication context example
│ └── utils/ # Utility functions
│ └── formatDate.js # Example utility function
├── index.html # Main HTML file
├── src/index.js # Main entry point, renders App component to the DOM
├── src/App.jsx # Main application component, sets up the overall layout and routing
├── .env # Environment variables
├── .gitignore # Git ignore settings
├── eslint.config.js # ESLint configuration
├── vite.config.js # Vite configuration for the build and dev server
├── package.json # Project metadata and dependencies
├── package-lock.json # Locks dependencies to specific versions
└── README.md # Project documentation
Explanation of the Root Files and Folders
public/assets
Place static assets here, like images and fonts. These assets are not processed by Vite and are accessible directly via URL paths.
src/
Contains your main application code, with folders organized for components, pages, hooks, and utilities.
Inside the src Folder
components/
Reusable UI elements. For example, Header.jsx for a navigation header and Footer.jsx for a footer that appears across pages.
pages/
Components representing individual pages, like Home.jsx for the homepage and About.jsx for the About page.
styles/
Organize CSS files here, like App.css for global styles and components.css for component-specific styles.
hooks/
Custom hooks, such as useFetch.jsx for a reusable data-fetching hook.
context/
Context files for global state, such as AuthContext.jsx for authentication management.
utils/
Utility functions used across the project, such as formatDate.js for date formatting.
Root Files
index.html
Main HTML file where React mounts. Contains a <div id="root"> element for Vite to inject JavaScript.
src/index.js
Entry point of your React app that renders App to the DOM.
src/App.jsx
Main component, setting up layout and routing.
Other Files
.env: Environment variables.gitignore: Git ignore settingseslint.config.js: ESLint configurationvite.config.js: Vite configurationpackage.json: Project metadata and dependenciespackage-lock.json: Locks dependencies to specific versionsREADME.md: Project documentation
