Frontend
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Laravel es un framework de backend que proporciona todas las características que necesitas para construir aplicaciones web modernas, como , , , , , y más. Sin embargo, creemos que es importante ofrecer a los desarrolladores una hermosa experiencia de full-stack, incluyendo enfoques potentes para construir el frontend de su aplicación.
Hay dos formas principales de abordar el desarrollo frontend cuando se construye una aplicación con Laravel, y el enfoque que elijas está determinado por si deseas construir tu frontend aprovechando PHP o mediante el uso de frameworks de JavaScript como Vue y React. Vamos a discutir estas dos opciones a continuación para que pueda tomar una decisión informada sobre el mejor enfoque para el desarrollo frontend para su aplicación.
En el pasado, la mayoría de las aplicaciones PHP renderizaban HTML al navegador usando simples plantillas HTML intercaladas con sentencias PHP echo
que renderizaban datos que eran recuperados de una base de datos durante la petición:
En Laravel, este enfoque para renderizar HTML todavía se puede lograr utilizando y . Blade es un lenguaje de plantillas extremadamente ligero que proporciona una sintaxis conveniente y corta para mostrar datos, iterar sobre datos y más:
Cuando se construyen aplicaciones de esta manera, los envíos de formularios y otras interacciones de página suelen recibir un documento HTML completamente nuevo del servidor y el navegador vuelve a renderizar toda la página. Incluso hoy en día, muchas aplicaciones pueden ser perfectamente adecuadas para tener sus frontends construidos de esta manera usando simples plantillas Blade.
Sin embargo, a medida que las expectativas de los usuarios con respecto a las aplicaciones web han ido madurando, muchos desarrolladores se han encontrado con la necesidad de construir frontends más dinámicos con interacciones que se sientan más pulidas. En vista de ello, algunos desarrolladores optan por empezar a construir el frontend de sus aplicaciones utilizando frameworks de JavaScript como Vue y React.
Cuando utilice Livewire, creará "componentes" Livewire que renderizarán una porción discreta de su UI y expondrán métodos y datos que pueden ser invocados e interactuados desde el frontend de su aplicación. Por ejemplo, un simple componente "Contador" podría tener el siguiente aspecto:
Y, la plantilla correspondiente para el contador se escribiría así:
Como puedes ver, Livewire te permite escribir nuevos atributos HTML como wire:click
que conectan el frontend y el backend de tu aplicación Laravel. Además, puedes renderizar el estado actual de tu componente usando simples expresiones Blade.
Aunque es posible construir frontends modernos utilizando Laravel y Livewire, muchos desarrolladores siguen prefiriendo aprovechar la potencia de un framework JavaScript como Vue o React. Esto permite a los desarrolladores aprovechar el rico ecosistema de paquetes y herramientas JavaScript disponibles a través de NPM.
Además, los desarrolladores tienen que mantener dos repositorios de código distintos y, a menudo, coordinar el mantenimiento, las versiones y los despliegues en ambos repositorios. Aunque estos problemas no son insalvables, no creemos que sea una forma productiva o agradable de desarrollar aplicaciones.
Después de instalar Inertia en tu aplicación Laravel, escribirás rutas y controladores como de costumbre. Sin embargo, en lugar de devolver una plantilla Blade desde su controlador, devolverá una página Inertia:
Una página Inertia corresponde a un componente Vue o React, normalmente almacenado dentro del directorio resources/js/Pages
de tu aplicación. Los datos proporcionados a la página a través del método Inertia::render
se utilizarán para hidratar las "props" del componente de la página:
Como puede ver, Inertia le permite aprovechar toda la potencia de Vue o React al construir su frontend, mientras que proporciona un puente ligero entre su backend Laravel y su frontend JavaScript.
Independientemente de si eliges desarrollar tu frontend usando Blade y Livewire o Vue / React e Inertia, es probable que necesites empaquetar el CSS de tu aplicación en assets listos para producción. Por supuesto, si eliges construir el frontend de tu aplicación con Vue o React, también necesitarás empaquetar tus componentes en activos JavaScript listos para el navegador.
Otros, que prefieren quedarse con el lenguaje backend con el que se sienten cómodos, han desarrollado soluciones que permiten construir interfaces de usuario de aplicaciones web modernas sin dejar de utilizar principalmente el lenguaje backend de su elección. Por ejemplo, en el ecosistema , esto ha impulsado la creación de bibliotecas como y .
Dentro del ecosistema Laravel, la necesidad de crear frontends modernos y dinámicos utilizando principalmente PHP ha llevado a la creación de y .
es un framework para construir frontends con Laravel que se sienten dinámicos, modernos y vivos al igual que los frontends construidos con frameworks modernos de JavaScript como Vue y React.
Para muchos, Livewire ha revolucionado el desarrollo frontend con Laravel, permitiéndoles permanecer dentro de la comodidad de Laravel mientras construyen aplicaciones web modernas y dinámicas. Por lo general, los desarrolladores que utilizan Livewire también utilizarán para "rociar" JavaScript en su frontend sólo cuando sea necesario, por ejemplo, con el fin de representar una ventana de diálogo.
Si eres nuevo en Laravel, te recomendamos familiarizarte con el uso básico de y . Después, consulta la documentación oficial de para aprender a llevar tu aplicación al siguiente nivel con componentes interactivos Livewire.
Si quieres construir tu frontend usando PHP y Livewire, puedes aprovechar nuestros para poner en marcha el desarrollo de tu aplicación. Ambos kits de inicio organizan el flujo de autenticación del backend y el frontend de tu aplicación utilizando y para que puedas empezar a construir tu próxima gran idea.
Sin embargo, sin herramientas adicionales, el emparejamiento de Laravel con Vue o React nos dejaría con la necesidad de resolver una variedad de problemas complicados como el enrutamiento del lado del cliente, la hidratación de datos y la autenticación. El enrutamiento del lado del cliente a menudo se simplifica mediante el uso de frameworks Vue / React como y ; sin embargo, la hidratación de datos y la autenticación siguen siendo problemas complicados y engorrosos de resolver cuando se empareja un framework backend como Laravel con estos frameworks frontend.
Afortunadamente, Laravel ofrece lo mejor de ambos mundos. tiende un puente entre tu aplicación Laravel y tu moderno frontend Vue o React, permitiéndote construir frontends completos y modernos usando Vue o React mientras aprovechas las rutas y controladores de Laravel para enrutamiento, hidratación de datos y autenticación - todo dentro de un único repositorio de código. Con este enfoque, se puede disfrutar de toda la potencia de Laravel y Vue / React sin paralizar las capacidades de cualquiera de las herramientas.
Si le preocupa sumergirse en Inertia porque su aplicación requiere renderizado del lado del servidor, no se preocupe. Inertia ofrece . Y, al desplegar su aplicación a través de , es muy fácil asegurarse de que el proceso de renderizado del lado del servidor de Inertia esté siempre en ejecución.
Si desea construir su frontend utilizando Inertia y Vue / React, puede aprovechar nuestros para poner en marcha el desarrollo de su aplicación. Ambos kits de inicio organizan el flujo de autenticación del backend y frontend de tu aplicación utilizando Inertia, Vue / React, , y para que puedas empezar a construir tu próxima gran idea.
Por defecto, Laravel utiliza para empaquetar tus recursos. Vite proporciona tiempos de compilación rapidísimos y un Hot Module Replacement (HMR) casi instantáneo durante el desarrollo local. En todas las nuevas aplicaciones Laravel, incluyendo aquellas que utilizan nuestros , encontrarás un archivo vite.config.js
que carga nuestro ligero plugin Laravel Vite que hace que sea un placer utilizar Vite con las aplicaciones Laravel.
La forma más rápida de empezar con Laravel y Vite es comenzar el desarrollo de tu aplicación utilizando , nuestro kit de inicio más sencillo que pone en marcha tu aplicación proporcionando un andamiaje de autenticación frontend y backend.
Para una documentación más detallada sobre la utilización de Vite con Laravel, consulte nuestra .