NO me gusta Laravel Livewire Volt

Video thumbnail

Quería comentar rápidamente mi opinión sobre Laravel Livewire Volt, esta tecnología que Laravel nos ofrece. No es obligatoria todavía; al menos, te la propone al crear un proyecto en Livewire, preguntándote si quieres utilizarla o no. Una vez elegida, la instala y a partir de ahí la utiliza.

Básicamente, Volt permite crear en un solo archivo Blade tanto la lógica como la parte visual, es decir, la interfaz. Funciona como un componente en Vue, donde conviven la lógica y la vista en el mismo archivo.

use function Livewire\Volt\{state};
 
state(['count' => 0]);
 
$increment = fn () => $this->count++;
 
?>
 
<div>
    <h1>{{ $count }}</h1>
    <button wire:click="increment">+</button>
</div>

Mis opiniones sobre Volt

  • Dificulta la lectura: Al tener archivos más densos que combinan el Blade y la capa de control, se complica leer el código, sobre todo en proyectos grandes.
  • Dificulta el mantenimiento: Puedes tener componentes tradicionales en Livewire o con Volt, lo que genera el mismo problema que con los componentes anónimos en Laravel: bifurcaciones dentro del proyecto sin un motivo claro.
  • Bifurcación innecesaria: Un mismo componente puede existir en tu proyecto con dos archivos: el Blade y su clase separada, o todo en un solo archivo. Esto puede depender de la cantidad de líneas, pero es subjetivo: ¿cuántas líneas son muchas? ¿cuántas son pocas? La lógica puede ser pequeña, pero la vista puede ser extensa, y eso puede confundir sobre si debes dividir el archivo o no.
  • Inconsistencia en el patrón de componentes: Personalmente, prefiero que todos los componentes sigan un mismo patrón, en lugar de tener algunos en un solo archivo y otros divididos. Esto es cuestión de gusto, pero considero que aporta más claridad y consistencia al proyecto.
  • Problemas con componentes anónimos: Los componentes anónimos son archivos Blade que no tienen lógica adicional. Son útiles para elementos simples, como botones, pero a veces es confuso identificar si un componente tiene una clase detrás o es totalmente anónimo. Esto genera cierta incertidumbre al leer o mantener el código.

Conclusión

No estoy diciendo que Laravel Livewire Volt sea una mala tecnología ni que deba evitarse, pero considero que puede generar confusión y dificultades de mantenimiento en algunos proyectos. Simplemente quería compartir mi opinión y las razones por las que personalmente no suelo utilizar Volt en todos mis desarrollos.

Acepto recibir anuncios de interes sobre este Blog.

Doy mis razones por las cuales no considero que Laravel Livewire Volt sea una buena herramienta para desarrollar los componentes.

| 👤 Andrés Cruz

🇺🇸 In english