Contenido del curso

Livewire y Laravel: resumen del proyecto final

Resumen

Combinar Livewire con Laravel te permite crear aplicaciones reactivas escribiendo solo PHP, sin saltar a JavaScript para cada interacción. Aquí repasamos cómo quedó estructurado el proyecto del curso, qué decisiones de arquitectura se tomaron y por qué a veces conviene mezclar componentes Livewire con controladores tradicionales.

¿Cómo se estructura un proyecto con Livewire y Laravel?

El proyecto final se apoya en tres componentes Livewire que conviven con la estructura clásica de Laravel. Cada componente cumple un rol claro y mantiene el código corto y legible.

  • Componente principal: orquesta el listado y la lógica general, con apenas 75 líneas.
  • Componente de la pregunta: maneja la visualización individual con muy pocas líneas.
  • Componente de la respuesta: replica el patrón anterior con responsabilidad acotada.

Dentro de cada componente encontrarás propiedades, eventos, métodos que se disparan al modificar variables, un método de actualización y otro de creación. Es prácticamente el mismo código que escribirías en un controlador, más el método que renderiza la vista.

¿Qué hace un componente Livewire? Combina lógica PHP, plantilla Blade y reactividad en una sola unidad. Cuando cambia una propiedad, la vista se actualiza sin recargar la página.

¿Por qué no crear un componente para cada cosa?

La tentación de descomponer todo en componentes es real, pero añade complejidad innecesaria al inicio. En el proyecto podrías haber creado componentes separados para el listado de categorías, para el formulario de creación y para la pregunta individual, y aun así decidimos no hacerlo.

La razón es práctica: tu proyecto debe funcionar y salir al mercado primero. Una vez que cumple lo mínimo, optimizas. Esa filosofía evita sobreingeniería y te deja avanzar sin trabarte en decisiones de arquitectura prematuras.

A nivel de vistas, cada componente tiene la suya propia. La vista más larga llega a 78 líneas, una cifra manejable que mantiene legibilidad sin fragmentar de más.

¿Cuándo conviene refactorizar a más componentes?

Cuando notas repetición de clases de diseño, lógica duplicada o vistas que crecen demasiado. Ahí tiene sentido extraer componentes Blade reutilizables y usarlos dentro de Livewire para no repetir estilos en cada plantilla.

¿Cuándo divido un componente grande? Cuando supera las 100 a 150 líneas, repite lógica o mezcla responsabilidades distintas. Antes de ese punto, divides por gusto, no por necesidad.

¿Cómo combinar Livewire con controladores tradicionales de Laravel?

No todo en tu proyecto necesita ser reactivo. En el curso se mantuvo un controlador clásico de Laravel para el desarrollo individual de una pregunta, porque convertirlo en componente Livewire no aportaba valor real al diseño final.

Esta mezcla es válida y recomendable. Livewire brilla en interacciones dinámicas como listados que se actualizan, formularios con validación en vivo o filtros reactivos. Para vistas estáticas o flujos lineales, un controlador tradicional sigue siendo la mejor opción.

La lógica es simple: usa la herramienta que resuelve el problema con menos fricción. Forzar Livewire en cada rincón añade peso innecesario; ignorarlo cuando aporta reactividad te hace escribir JavaScript de más.

¿Qué sigue después de terminar el proyecto?

Este proyecto es una base sólida para que construyas tu propia idea. Puedes extenderlo con componentes Blade personalizados, separar responsabilidades cuando el código lo pida y optimizar partes específicas conforme aparezcan cuellos de botella.

Algunas rutas para seguir creciendo:

  • Crear componentes Blade reutilizables para botones, tarjetas y formularios.
  • Extraer el formulario de creación a un componente Livewire propio cuando crezca.
  • Añadir validación reactiva con las reglas de Livewire.
  • Integrar eventos entre componentes para comunicación cruzada.

Recuerda presentar el examen, aprobar el curso y compartir tu certificado en redes. Cuéntame en los comentarios qué proyecto vas a construir con esta combinación de Livewire y Laravel.