Crear una aplicación de una sola página (SPA, por sus siglas en inglés) con múltiples componentes separados pero enlazados es totalmente posible utilizando HTML, CSS y JavaScript.
1. Estructura del Proyecto
Primero, organiza tu proyecto con una estructura clara:
2. Archivo index.html
Este será el archivo principal donde se cargará el contenido dinámico:
3. Contenido de los Componentes
En la carpeta componentes
, crea archivos como
inicio.html
, acerca.html
y
contacto.html
con su contenido específico:
4. Archivo rutas.js
Define tus rutas en un archivo de JavaScript. Esto ayuda a vincular las rutas con sus componentes:
5. Archivo app.js
Aquí manejas la carga dinámica de los componentes según la ruta seleccionada:
6. Archivo estilos.css
Usa este archivo para definir los estilos de tu SPA:
Cómo Funciona
- El usuario selecciona un enlace (por ejemplo,
#acerca
). -
El evento
hashchange
detecta el cambio en el hash de la URL. - JavaScript carga dinámicamente el contenido asociado desde la carpeta de componentes sin recargar la página completa.
Estructura modular
Descripción de Cada Carpeta
-
/public
: Aquí se almacena contenido estático que no será procesado por herramientas de construcción. Incluye archivos como:-
index.html
: Archivo raíz inicial de la aplicación. -
favicon.ico
: Ícono del sitio web. - Otros recursos estáticos, como imágenes que no cambian.
-
-
/src
: Contiene todo el código fuente de la aplicación:-
/assets
: Archivos estáticos como imágenes, íconos, y estilos globales (CSS/SCSS).-
/images
: Imágenes para el proyecto. -
/icons
: Íconos personalizados o de librerías. -
/styles
: Estilos globales o variables CSS.
-
-
/components
: Componentes reutilizables de la interfaz (botones, menús, etc.). -
/pages
: Vistas completas o páginas de la aplicación (como Inicio, Contacto, Dashboard). -
/services
: Lógica para interactuar con APIs externas o internas. -
/store
: Manejo del estado global (en frameworks como Redux, MobX). -
/utils
: Funciones utilitarias y herramientas comunes (como validaciones o formatos de fecha). -
App.js
: Componente principal que reúne la estructura de la aplicación. -
index.js
: Punto de entrada para renderizar la aplicación en el DOM.
-
-
/config
: Archivos de configuración para el entorno, como archivos de despliegue o configuración de herramientas de compilación. -
/tests
: Pruebas unitarias, funcionales o de integración para garantizar la calidad del código. -
.env
: Variables de entorno que contienen información sensible o específica del entorno de ejecución, como claves API o URLs base. -
package.json
: Lista de dependencias del proyecto, scripts de construcción y metadatos. -
README.md
: Documento con información importante sobre el proyecto (cómo configurarlo, ejecutarlo, y más). -
/node_modules
: Dependencias del proyecto instaladas con npm o yarn. Generalmente no se toca directamente.
Beneficios de Esta Estructura
Mantenibilidad: Cada área del proyecto tiene su propia carpeta, lo que mejora la claridad.Escalabilidad: Perfecta para proyectos que crecen con el tiempo.
Colaboración: Facilita la comunicación entre el administrador del proyecto y los desarrolladores, ya que todos saben dónde está cada cosa.
Si estás trabajando con frameworks como React, Angular, o Vue, esta estructura modular es altamente compatible y adaptable.