Este proyecto es una aplicación web creada con Vue 3 y Vite que muestra una lista de productos con filtros por categoría y rango de precio. Incluye paginación, animaciones, guardado de preferencias en localStorage y estadísticas básicas.
- Listado de productos obtenidos desde una API externa.
- Filtros dinámicos por categoría y rango de precio.
- Guardado y carga de preferencias de filtros usando
localStorage. - Paginación con navegación entre páginas.
- Animaciones suaves al cambiar filtros o páginas.
- Visualización de estadísticas como total de productos, categorías únicas y precio promedio.
- Node.js (versión 14 o superior recomendada)
- npm (viene con Node.js)
- Clona este repositorio o descarga el código.
- Abre una terminal en la carpeta raíz del proyecto.
- Ejecuta para instalar dependencias:
npm installPara correr la app en modo desarrollo con recarga en caliente:
npm run devPara compilar y minificar la aplicación para producción:
npm run buildPara analizar y corregir problemas de estilo y errores potenciales en el código usando ESLint:
npm run lint- Vue 3: Framework progresivo de JavaScript para construir interfaces de usuario.
- Vite: Herramienta de construcción rápida para proyectos frontend.
- Axios: Cliente HTTP para realizar peticiones a APIs.
- Tailwind CSS: Framework CSS para diseño rápido y responsive con utilidades.
- ESLint: Herramienta para mantener la calidad y consistencia del código.
- JavaScript (ES6+): Lenguaje principal para el desarrollo frontend.
El proyecto sigue una estructura modular para facilitar el mantenimiento y escalabilidad:
src/components— Componentes Vue reutilizables (ProductCard, ProductPagination, ProductStatistics)src/App.vue— Componente principal con lógica de filtros, paginación y animacionespublic/— Archivos estáticos
-
Uso de Vue 3 con Composition API:
Se eligió Vue 3 y su Composition API para aprovechar una mejor organización del código y una mayor flexibilidad en la gestión del estado y la lógica reactiva. -
Vite como herramienta de build:
Se usó Vite para un desarrollo rápido con hot-reload eficiente y una configuración sencilla. -
LocalStorage para persistencia de filtros:
Para mejorar la experiencia del usuario, las preferencias de búsqueda se guardan en localStorage, permitiendo que los filtros persistan entre sesiones. -
Animaciones con
<Transition>y<TransitionGroup>de Vue:
Se implementaron animaciones de entrada/salida para mejorar la experiencia visual al cambiar páginas o filtros, usando clases CSS personalizadas para desvanecimiento y desplazamiento. -
Separación en componentes reutilizables:
Componentes como ProductCard, ProductPagination y ProductStatistics permiten modularizar la aplicación, facilitando mantenimiento y escalabilidad. -
Uso de API pública para datos:
Se usaron endpoints públicos para productos y categorías, asegurando datos reales para la prueba y demostración. -
Tailwind CSS para estilos rápidos y responsivos:
El proyecto utiliza Tailwind para facilitar el diseño responsive y acelerar el desarrollo con utilidades CSS predefinidas.