Estructura de un proyecto React


Mostraremos la estructura basica de un proyecto react

Estructura de un proyecto React
oscar Escrito por oscar 10 April 2025 991 0

En este post aprenderás a crear una estructura en React para tus proyectos, veremos una estructurara de directorios y archivos con su explicación y la vamos a extender a medida que añadamos componentes.

🆕 Crear un proyecto en react

Para mas detalle, puede ver el post de como instalar react.

npm create vite@latest

💻 Estructura de un proyecto

Al crear un proyecto con react, usando npm o vite, generara la siguiente estructura de archivos y carpetas que son los básicos para iniciar un proyecto de react:

nombre-del-proyecto/
├── node_modules/
├── public/
│   └── favicon.svg
├── src/
│   ├── App.css
│   ├── App.jsx
│   ├── index.css
│   └── main.jsx
├── .gitignore
├── index.html
├── package.json
├── vite.config.js
└── README.md

⏺️ Raíz del proyecto

⏺️ Carpeta public/

Contiene archivos estáticos que serán accesibles directamente en la aplicación.

⏺️ Carpeta src/

Esta es la carpeta principal donde se desarrolla la lógica de la aplicación.

🖥️ Ampliación de la estructura para proyectos más grandes

Cuando el proyecto crece, puedes agregar más carpetas:

src/
├── api/          # Llamadas a servicios o endpoints de tu backend
├── hooks/        # Custom hooks para manejar lógica reutilizable
├── contexts/     # Contextos de React (e.g., AuthContext, ThemeContext)
├── redux/        # Lógica de Redux si usas Redux como gestor de estado
├── utils/        # Funciones reutilizables como formateadores o validadores
└── styles/       # Estilos globales o configuraciones CSS/SASS

⏺️ Personaliza el proyecto react

Elimina archivos innecesarios: Limpia el directorio src para empezar con una base más limpia:

Estructura tu proyecto: Organiza tu código con carpetas como:

📁 Estructura profesional para un proyecto React

my-app/
│
├── public/                  # Archivos públicos como index.html, favicon, imágenes globales
│
├── src/                     # Código fuente del proyecto
│   ├── assets/              # Imágenes, fuentes, íconos, etc.
│   │   ├── images/
│   │   └── fonts/
│
│   ├── components/          # Componentes reutilizables y pequeños
│   │   └── Button/
│   │       ├── Button.tsx
│   │       ├── Button.test.tsx
│   │       └── Button.module.css
│
│   ├── features/            # Features o módulos por dominio de negocio
│   │   └── auth/            # Ejemplo: autenticación
│   │       ├── components/  # Componentes relacionados solo con este módulo
│   │       ├── pages/       # Páginas específicas de este módulo
│   │       ├── authSlice.ts # Redux slice (opcional)
│   │       └── authService.ts
│
│   ├── hooks/               # Hooks personalizados
│   │   └── useAuth.ts
│
│   ├── layouts/             # Layouts generales (DashboardLayout, AuthLayout, etc.)
│   │   └── MainLayout.tsx
│
│   ├── pages/               # Páginas de alto nivel (con React Router o Next.js)
│   │   ├── Home.tsx
│   │   └── NotFound.tsx
│
│   ├── routes/              # Definición de rutas centralizadas
│   │   └── AppRoutes.tsx
│
│   ├── services/            # Lógica de acceso a APIs (fetch/axios)
│   │   └── api.ts
│
│   ├── store/               # Configuración del estado global (Redux/Zustand/etc.)
│   │   ├── store.ts
│   │   └── rootReducer.ts
│
│   ├── types/               # Tipos globales de TypeScript
│   │   └── user.ts
│
│   ├── utils/               # Funciones utilitarias y helpers
│   │   └── formatDate.ts
│
│   ├── App.tsx              # Componente raíz
│   ├── main.tsx             # Punto de entrada (ReactDOM)
│   └── index.css            # Estilos globales
│
├── .env                     # Variables de entorno
├── .gitignore
├── tsconfig.json            # Configuración de TypeScript
├── vite.config.ts           # Configuración de Vite (si usas Vite)
├── package.json
└── README.md

🧠 Consejos adicionales


Comentario

Debe aceptar antes de enviar