Tambien tengo recursos gratuitos para el Curso en el Blog
Es importante mencionar, que el curso tambien tiene el formato en libro con el 100% del contenido del mismo, es decir, el curso es equivalente al libro.
En este curso vas a aprender Laravel Livewire desde cero, hasta conocer sus detalles más importantes; recuerda que debes de saber programar en Laravel para ver este curso.
Laravel es un framework fascinante, inmenso y con una curva de aprendizaje algo elevada y con múltiples opciones; este libro no es para iniciales y da por hecho de que ya sabes programar en Laravel.
Laravel Livewire lleva el desarrollo de Laravel un poco más allá; automatizando procesos rutinarios en esquemas muy flexibles en base a componentes, los componentes de Livewire que nos permite comunicar cliente y servidor de una manera muy simple, eficiente y sencilla.
Laravel Livewire no es un framework, es solamente una capa o scaffolding que agrega ciertas características extras al framework que podemos utilizar para crear grandes aplicaciones, con menos esfuerzo y tiempo de desarrollo.
Livewire es un scaffolding para Laravel, el cual no es más que un esqueleto o capa que agregan ciertas funcionalidades extras en Laravel mediante el uso de componentes de Livewire; los mismos componentes de Laravel básico, pero con añadidos muy interesantes que son los que conforman a Livewire.
Además de esto, un proyecto en Livewire ya nos trae configurados Tailwind.css y Alpine.js
Con todo estos conocimientos podrás emplearlos para crear tus propias aplicaciones en Flutter.
Crear aplicaciones web modernas es difícil, herramientas como Vue y React son extremadamente poderosas, pero la complejidad que agregan al flujo de trabajo de un desarrollador de pila completa es una locura.
Pensando en lo anterior, Laravel Livewire es un marco completo para Laravel que simplifica la creación de interfaces dinámicas, sin dejar la comodidad de Laravel; en pocas palabras nos permite usar esquemas similares a los de Vue y React directamente en Laravel.
Podemos trabajar con esquemas similares a los de Laravel y Vue, pero de una manera más directa y simple; el desarrollo de Laravel está fuertemente ligado al uso de componentes; los mismos componentes de Laravel pero con agregados importante de Laravel Livewire lo que permite escalar enormemente el uso de componentes:
En definitiva, con Livewire, podemos hacer lo mismo que hacemos con Laravel y sus controladores, pero de una manera más sencilla en la cual podemos usar los componentes y reutilizar piezas de código que nos ofrece Livewire para hacer una comunicación muy sencilla entre el servidor con el cliente.
Aparte de que, dependiendo como decidas instalar a Laravel Livewire, puedes habilitar opciones que ya vienen de gratis como:
En definitiva, Livewire no es un framework, lo puedes ver como un paquete más que agrega funcionalidades extras a algunos elementos de Laravel que en definitiva lo convierten en un scaffolding o esqueleto para nuestras aplicaciones.
Para esta tecnología, tenemos que emplear dos documentaciones aparte (sin contar con la de Laravel).
La que nos ofrece la estructura del proyecto:
https://jetstream.laravel.com/2.x/stacks/livewire.html
Y la que nos ofrece Laravel Livewire al momento de desarrollar:
Laravel es un framework fascinante, inmenso y con una curva de aprendizaje algo elevada y con múltiples opciones; este libro no es para iniciales y da por hecho de que ya sabes programar en Laravel.
Laravel Livewire lleva el desarrollo de Laravel un poco más allá; automatizando procesos rutinarios en esquemas muy flexibles en base a componentes, los componentes de Livewire que nos permite comunicar cliente y servidor de una manera muy simple, eficiente y sencilla.
Laravel Livewire no es un framework, es solamente una capa o scaffolding que agrega ciertas características extras al framework que podemos utilizar para crear grandes aplicaciones, con menos esfuerzo y tiempo de desarrollo.
Este curso está dirigido a cualquiera que quiera comenzar a desarrollar con Laravel Livewire en el desarrollo de aplicaciones basadas en componentes de Laravel con algunos agregados que permiten la comunicación directa entre el servidor y el cliente.
Por aquí tienes el listado completo de clases que vamos a cubrir en el libro y curso:
Vamos a crear un proyecto Laravel Livewire en entorno Windows (MacOS).
Vamos a presentar que es lo que tenemos en detalle, el proyecto, sus características y cómo funciona.
Vamos a crear las migraciones para el proyecto.
Vamos a crear los modelos.
Vamos a crear los componentes iniciales.
Vamos a crear las rutas para las categorías.
Veremos como solucionar el error anterior en caso de que te ocurra.
Vamos a crear el proceso para crear una categoría.
Vamos a presentar otros atributos que tenemos disponibles.
Vamos a realizar validaciones del lado del servidor y mostrar las mismas en la vista.
Vamos a mostrar los errores de formulario.
Vamos a realizar algunas pruebas para entender cómo Livewire mantiene actualizado su estado.
Explicaremos el ciclo de vida de los componentes de Livewire.
Trabajaremos en el apartado de actualizar un registro existente
Vamos a crear un componente de listado.
Vamos a adaptar la paginación.
Vamos a eliminar una categoría mediante un botón.
Vamos a crear un diálogo de confirmación para eliminar.
Vamos a mostrar un componente para mostrar información sobre las operaciones CRUDs.
Vamos a hacer el upload de una imagen
Vamos a mostrar la imagen por pantalla cargada
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.1
Vamos a presentar el uso de componentes para reutilizar en nuestro propios componentes.t
Vamos a adaptar el diseño del formulario con el componente de Livewire.<br />
Vamos a crear un componente de carta.
Vamos a definir el header para el layout.
Vamos a crear un contenedor.
Vamos a trabajar en un componente de alerta.
Vamos a hacer un box para los diálogos de confirmación.
Vamos a colocar la opción para el menú.
Vamos a colocar la opción para el menú.
Vamos a crear el menú para los CRUD de tipo Dropdown.
Vamos a mover el menú anterior del lado izquierdo al derecho del navbar.
Vamos a crear la opción para crear el enlace para la categoría.
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.2
Introduccion de la seccion
Vamos a crear las migraciones para los formularios.
Vamos a crear los componentes de Livewire para los formularios.
Vamos a crear los modelos.
Vamos a crear el formulario para crear el contacto general.
Vamos a aplicar las validaciones mediante atributos
Vamos a crear el formulario para crear el contacto por persona.
Vamos a crear el formulario para crear el contacto por empresa.
Vamos a crear el formulario para crear el contacto por detalle.
Vamos a crear los condicionales para manejar un paso o el otro.
Vamos a aprender a renderizar componentes de Livewire desde un archivo blade.
Vamos a conocer la comunicación entre componentes.
Vamos a crear el layout base para la sección de contacto.
Vamos a crear el diseño para mostrar el paso actual.
Vamos a dar una introducción a Alpine y su importancia con Livewire.
Vamos a conocer el objeto $wire para trabajar desde el bloque de script en Livewire.
Vamos a definir el PK del componente padre (general) y se lo pasamos a los hijos.
Vamos a realizar el proceso para guardar los comentarios en la base de datos.
Vamos a habilitar el proceso de actualización.
Hablaremos sobre los eventos padre a hijos y el uso de propiedades en los componentes
Vamos a crear el botón para paso atrás.
Vamos a crear una ruta para poder actualizar el formulario desde el paso general.
Vamos a implementar una redirección a editar al momento de crear un formulario general
Pequeños detalles de CSS.
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.3
Vamos a crear el proceso de crear y actualizar
Vamos a crear el listado de los posts y la opción de eliminar
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.4
Vamos a crear seeders para generar datos de pruebas para los posts
Aplicaremos algunos cambios a la tabla
Vamos a crear la opción de los filtros para los seleccionables
Crearemos los campos HTML y aplicaremos el filtro.
Vamos a crear un campo de búsqueda para varios campos.
Vamos a crear un filtro por fechas.
Vamos a implementar el queryString de los filtros y campo de búsqueda.
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.5
Vamos a ver una demostración de empleando new Post en vez de una consulta con el where.
Vamos a reemplazar el filtro actual con el uso de los when.
Vamos a crear la estructura para la ordenación de las columnas del listado.
Vamos a crear reutilizable el componente de ordenación.
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.6
Vamos a crear un enlace para limpiar el filtro.
Vamos a presentar el uso de los hooks en JavaScript.
Vamos a conocer el plugin y obtenerlo.
Vamos a evitar que el CKEditor se vea afectado por las actualizaciones de Livewire.
Vamos a conocer como obtener el HTML generado por CKEditor y un evento para los cambios.
Vamos a registrar el HTML generado en el CKEditor en una propiedad.
Vamos a establecer el contenido por defecto al CKEditor.
Vamos a aplicar un CSS al editor para que que se distinga los elementos Hx y listados.
Vamos a hablar de si podemos usar Node con el JavaScript de Livewire.
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.7
Hablaremos sobre algunas propiedades antiguas para diferir la actualización de las propiedades desde la vista.
Vamos a presentar las propiedades computadas.
Vamos a conocer otras características de las propiedades
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.8
Vamos a crear el esqueleto de la app.
amos a trabajar en el diseño de la página de listado.
Vamos a crear y configurar un layout para el módulo de blog.
Vamos a crear la página de detalle.
Vamos a crear el botón de navegación.
Vamos a colocar el formulario paso por paso en el detalle del post.
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.9
Vamos a crear el esqueleto del módulo.
Vamos a crear el componente y estructura inicial de un ítem del carrito.
Vamos a implementar la opción de agregar un producto al carrito.
Vamos a implementar la opción de eliminar un producto al carrito.
Vamos a crear un formulario para poder agregar post de tipo publicidad.
Vamos a corregir la implementación en el uso de los eventos.
Vamos a crear la estructura para trabajar con la base de datos.
Vamos a guardar la sesión del carrito en la base de datos.
Vamos a escuchar cuando ocurre el login y replicar en la sesión el carrito.
Vamos a conocer como implementar un listener mediante comandos de artisan.
Vamos a instalar y configurar un plugin de toast.
Vamos a escuchar los eventos desde el ítem del carrito desde JS.
Voy a mostrarte los cambios realizados para reparar el error que aparecía al momento de agregar el item y de modificar cantidades.
Vamos a calcular el total de elementos en el carrito.
Vamos a mostrar el total en una vista y crear el botón de carrito mostrando el total.
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.10
Vamos a hablar un poco sobre el framework.
Vamos a comparar ambos frameworks.
Vamos a crear un proyecto para trabajar con Alpine.
Vamos a conocer el esquema básico, con un componente para mostrar u ocultar bajo demanda.
Vamos a mapear una variable a un campo de texto.
Vamos a presentar el bind de atributos.
Vamos a mostrar el bind de clases.
Vamos a trabajar con el atributo de estilos.
Vamos a conocer el uso del for.
Vamos a conocer el uso del condicional.
Ejemplo en donde empleamos los objetos y con condicionales.
Vamos a organizar el código anterior en un bloque de script.
Conoceremos cómo crear una referencia a cualquier elemento HTML.
Vamos a crear el listado para los TODO.
Vamos a crear una aplicación tipo TODO, primero, el campo de búsqueda.
Vamos a crear todos.
Vamos a realizar la opción marcar una tarea como completada.
Vamos a realizar la opción de eliminar un todo.
Vamos a realizar la opción de borrar todos los todos.
Vamos a realizar la opción de modificar un todo.
Vamos a adaptar el estilo de B5 en la app.
Vamos a instalar y configurar un plugin para hacer ordenable el listado.
Vamos a clonar el proyecto de Alpine en Livewire.
Vamos a crear el modelo y migración de los to do.
Vamos a crear un to do desde Livewire y la clase componente.
Vamos a mostrar el listado de to do desde la base de datos en Alpine.
Vamos a presentar un esquema de ordenación el clásico de construir el array desde cero.
Vamos a guardar los to do en la base de datos.
Vamos a eliminar un to do en la base de datos.
Vamos a eliminar todos los to do.
Vamos a actualizar un to do.
Vamos a marcar como completado un to do.
Vamos a arreglar el problema de sincronizar el listado al momento de crear.
Vamos a reparar un error que cuando reordenamos se dispara el evento de update sobre el todo.
Vamos a hablar sobre la reordenacion mediante una petici n en axios
Vamos a hablar sobre la instancia doble de Alpine.
Vamos a migrar la app de Bootstrap a Tailwind.
Código fuente del capítulo: https://github.com/libredesarrollo/book-course-laravel-livewire/releases/tag/v0.11
Presentamos conceptos claves e importancias de las pruebas.
Daremos una introducción a las pruebas específicas para Laravel Livewire presentando sus métodos de aserción principales.
Vamos a crear la primera PHPUnit para la aplicación.
Hablaremos sobre elementos importantes que tenemos que tener en cuenta para implementar la prueba.
Daremos una introducción a las pruebas específicas para Laravel Livewire presentando sus métodos de aserción principales.
Vamos a conocer el método de aserción de Livewire.
Crearemos la prueba para el detalle de un post en el blog.
Prueba para el dashboard del listado.
Vamos a autenticar un usuario para los módulos protegidos por autenticación.
Prueba para el formulario de creación de una categoría.
Vamos a configurar una base de datos de prueba.
Vamos a crear unos factories para generar datos de prueba.
Vamos a crear la prueba para crear una categoría.
Tarea Dashboard Prueba para editar categor a
Vamos a crear la prueba para eliminar una categoría.
Crearemos las pruebas para el post, partiendo de las pruebas de las categorías.
Vamos a implementar algunos métodos de aserciones adicionales.
Vamos a crear las pruebas para el primer paso del formulario paso por paso, el get.
Vamos a crear las pruebas para el primer paso del formulario paso por paso, el post.
Vamos a crear las pruebas para el segundo paso del formulario paso por paso, el get.
Implementamos los facades de los pasos por pasos.
Vamos a crear las pruebas para el segundo paso del formulario paso por paso, enviar el evento.
Vamos a crear las pruebas para el segundo paso del formulario paso por paso, el de personas el GET y enviar petición.
Vamos a crear las pruebas para el tercer paso del formulario paso por paso, GET y enviar petición.
Presentamos un nuevo método de aserción para evaluar parámetros de los eventos despachados.
Vamos a crear las pruebas para el primer paso del formulario paso por paso, para editar.
Vamos a crear las pruebas para el segundo paso, el de company del formulario paso por paso, editar en Get.
Vamos a crear un proyecto en Laravel.
Vamos a preparar todo para poder usar Sail con Docker para nuestro proyecto.
Vamos a crear un proyecto Laravel Livewire en entorno Windows.
Vamos a crear un proyecto en Livewire partiendo de un proyecto base de Laravel.
Vamos a subir el proyecto a git.
Vamos a presentar que es lo que tenemos en detalle, el proyecto, sus características y cómo funciona.
Vamos a crear las migraciones para el proyecto.
Vamos a crear los componentes iniciales.
Vamos a crear las rutas para las categorías.
Vamos a crear los modelos.
Vamos a crear el proceso para crear una categoría.
Vamos a conocer la pantalla de errores de Livewire.
Vamos a presentar otros atributos que tenemos disponibles.
Vamos a realizar pruebas con Livewire.
Vamos a realizar validaciones del lado del servidor y mostrar las mismas en la vista.
Vamos a usar los componentes de Livewire del lado de nuestro componente.
Explicaremos el ciclo de vida de los componentes de Livewire.
Trabajaremos en el apartado de actualizar un registro existente.
Vamos a crear un componente de listado.
Vamos a adaptar la paginación.
Vamos a eliminar una categoría mediante un botón.
Vamos a crear un diálogo de confirmación para eliminar.
Vamos a mostrar un componente para mostrar información sobre las operaciones CRUDs.
Vamos a hacer el upload de una imagen.
Vamos a adaptar el diseño del formulario con el componente de Livewire.
Vamos a crear un componente de carta.
Vamos a definir el header para el layout.
Vamos a crear un contenedor.
Vamos a mejorar la presencia de la tabla.
Vamos a trabajar en un componente de alerta.
Vamos a hacer un box para los diálogos de confirmación.
Vamos a colocar la opción para el menú.
Vamos a realizar un pequeño cambio en el menú anterior.
Vamos a crear el menú para el modo móvil.
Vamos a crear la opción para crear el enlace para la categoría.
Vamos a crear las migraciones para los formularios.
Vamos a crear los componentes de Livewire para los formularios
Vamos a crear los modelos.
Vamos a crear el formulario para crear el contacto general.
Vamos a crear el formulario para crear el contacto por persona.
Vamos a probar la relación entre general y persona y su inversa.
Vamos a crear el formulario para crear el contacto por empresa.
Vamos a probar la relación entre general y empresa y su inversa.
Vamos a crear el formulario para crear el contacto por detalle.
Vamos a probar la relación entre general y detalle y su inversa.
Vamos a crear los condicionales para manejar un paso o el otro.
Vamos a aprender a renderizar componentes de Livewire desde un archivo blade.
Vamos a conocer la comunicación entre componentes.
Vamos a crear el layout base para la sección de contacto.
Vamos a pasar el diseño a clases.
Vamos a conocer el objeto $wire para trabajar desde el bloque de script en Livewire.
Vamos a realizar una demostración del evento click en Alpine.js y su uso con Livewire.
Vamos a crear el botón para paso atrás.
Vamos a definir el PK del componente padre (general) y se lo pasamos a los hijos.
Vamos a realizar el proceso para guardar los comentarios en la base de datos.
Vamos a habilitar el proceso de actualización.
Pequeños detalles de CSS.
Publicar en git
Vamos a crear el proceso de crear y actualizar.
Vamos a crear el listado de los posts y la opción de eliminar.
Vamos a crear la opción de los filtros para los seleccionables.
Vamos a crear un campo de búsqueda para varios campos.
Vamos a implementar el queryString de los filtros y campo de búsqueda.
Vamos a crear un filtro por fechas.
Vamos a crear el esquema para la ordenación.
Vamos a crear la estructura para la ordenación de las columnas del listado.
Vamos a acomodar unos aspectos de alineación de los th en la columna.
Vamos a crear reutilizable el componente de ordenación.
Vamos a replicar el esquema de ordenación para las categorías.
Vamos a presentar el uso de los hooks en JavaScript.
Vamos a instalar y configurar CKEditor.
Vamos a realizar la actualización desde la propiedad a CKEditor.
Vamos a conocer otras funciones de JavaScript útiles para el desarrollo.
Vamos a hablar de si podemos usar Node con el JavaScript de Livewire.
Vamos a trabajar con las propiedades del lado del wire:model para diferir las actualizaciones al servidor.
Vamos a presentar las propiedades computadas.
Vamos a crear el esqueleto de la app.
Vamos a trabajar en el diseño de la página de listado.
Vamos a crear y configurar un layout para el módulo de blog.
Vamos a realizar un acomodo extra.
Vamos a crear la página de detalle.
Vamos a crear el botón de navegación.
Vamos a colocar el formulario paso por paso en el detalle del post.
Vamos a crear el esqueleto del módulo.
Vamos a implementar la opción de agregar un producto al carrito.
Vamos a implementar la opción de agregar un producto al carrito.
Vamos a crear la gestión del ítem.
Vamos a definir los detalles finales del carrito de compras.
Vamos a crear la estructura para trabajar con la base de datos.
Vamos a guardar la sesión del carrito en la base de datos.
Vamos a escuchar cuando ocurre el login y replicar en la sesión el carrito.
Vamos a instalar y configurar un plugin de toast.
Vamos a escuchar los eventos desde el ítem del carrito desde JS.
Vamos a escuchar en varios lugares los eventos.
Vamos a calcular el total de elementos en el carrito.
Vamos a mostrar el total en una vista y crear el botón de carrito mostrando el total.
Vamos a hablar un poco sobre el framework.
Vamos a comparar ambos frameworks.
Vamos a crear un proyecto para trabajar con Alpine.
Vamos a conocer el esquema básico, con un componente para mostrar u ocultar bajo demanda.
Vamos a mapear una variable a un campo de texto.
Vamos a presentar el bind de atributos.
Vamos a trabajar con múltiples valores para los atributos.
Vamos a trabajar con el atributo de estilos.
Vamos a conocer el uso del for y condicional.
Vamos a organizar el código anterior en un bloque de script.
Introducción
Vamos a crear una aplicación tipo TODO, primero, el campo de búsqueda.
Vamos a crear todos.
Vamos a realizar la opción marcar una tarea como completada.
Vamos a realizar la opción de eliminar un todo.
Vamos a realizar la opción de borrar todos los todos.
Vamos a realizar la opción de modificar un todo.
Vamos a adaptar el estilo de B5 en la app.
Extra: Guardar de manera persistente
Vamos a instalar y configurar un plugin para hacer ordenable el listado.
Vamos a clonar el proyecto de Alpine en Livewire.
Vamos a crear el modelo y migración de los to do.
Vamos a crear un to do desde Livewire y la clase componente.
Vamos a mostrar el listado de to do desde la base de datos en Alpine.
Vamos a presentar un esquema de ordenación el clásico de construir el array desde cero.
Vamos a guardar los to do en la base de datos.
Vamos a presentar un esquema de ordenación, el de quitar y colocar el todo.
Hablaremos sobre un bug actualmente.
Vamos a presentar un esquema de ordenación.
Seguiremos hablando del bug.
Vamos a eliminar un to do en la base de datos.
Vamos a actualizar un to do.
Vamos a marcar como completado un to do.
Vamos a eliminar todos los to do.
Vamos a realizar la reordenación mediante una petición en axios.
Vamos a convertir el contenido de Bootstrap 5 a Tailwind.css.
Veremos cómo ignorar un bloque de HTML.
Veremos cómo copiar el contenido de un componente en otra parte del DOM.
Veremos cómo detectar cambios en variables.
Veremos cómo crear un observable.
Veremos cómo imprimir contenido HTML.
Veremos cómo generar IDs dinámicos.
Veremos cómo referenciar un elemento como si fuera un selector.
Veremos cómo almacenar datos en el store.
Veremos cómo verificar si los cambios fueron realizados por Alpine en el DOM.
Vamos a conocer como manejar eventos personalizados.
Vamos a conocer como acceder a atributos del root del componente.
Vamos a conocer un nuevo plugin para manejar la máscara de los inputs.
Presentación
Crearemos el listado de usuarios.
Aplicaremos el estilo con Tailwind.css.
Vamos a crear un campo de búsqueda para las cartas.
Vamos a crear la estrVamos a crear la parte funcional para variar las cantidades.uctura básica para variar las cantidades.
Vamos a crear un efecto hover.
Vamos a crear la parte funcional para variar las cantidades.
Vamos a deshabilitar el input de tipo rango al momento de realizar una petición.
Vamos a crear un nuevo componente, el cuerpo básico.
Vamos a desplegar y contraer el acordeón de manera animada.
Te voy a dar mi experiencia en un problema que tiene CKEditor que genera HTML innecesario y como eliminarlo.
- Andrés Cruz
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter
Acepto recibir anuncios de interes sobre este Blog.
!Cursos desde!
10$
En Udemy
Quedan 4d 10:59!
!Cursos desde!
4$
En Academia
Ver los cursos!Libros desde!
1$
Ver los libros