Para que MIE#%!& Sirve Laravel Inertia

No se para que Usar Laravel Inertia, para que lo usas tu?

¿Para qué demonios podemos emplear Laravel Inertia? es una pregunta que me llevó haciendo realmente hace varios meses antes que nada antes que me respondas recuerda que siempre me puedes responder y dar tu opinión en la parte de los comentarios quiero como quien dice entrar un poquito de contexto.

Contexto

Como te digo llevo meses preguntándome lo mismo y todavía no doy con la respuesta estoy más que todo aquí hablando sobre proyectos con los cuales yo trabajo principalmente que son de tipo por una parte administrativo y por otra parte tenemos como quien dice así lo llamo yo para el usuario final es decir tipo blog por ejemplo obviamente el blog que tienen una parte administrativa para crear las publicaciones y todo lo demás. Esto se repite en cualquier temática es decir puede ser así para una aplicación tipo blog tal cual te comentaba y ahorita te voy a mostrar y es lo mismo que manejamos en el mis cursos y libros entonces no tiene que ser ninguna sorpresa si vas a vender carros si vas a vender entradas en líneas si vas a vender gorras si vas a alquilar casas si vas a alquilar hoteles lo que sea siempre es lo mismo tenemos una parte administrativa y tenemos otra parte para el usuario final.

SPA y SEO no son los mejores amigos

Otra clave  importante es que usualmente la queremos posicionar posicionar una web de tipo SPA es un problemón es decir es ganarse un problema de gratis porque para eso tenemos que seguir aquí mejor el enfoque clásico y el problema principal es que precisamente como va cargando a trozos Google o directamente motores de búsqueda como Google no tiene ni idea de a veces qué es lo que está cargando por lo tanto no sabes qué leer si tienes que esperar o lo que sea porque va cargando trozos entonces este es el problema principal de poder trabajar con web de tipo SPA para cuando las quieres posicionar así que inicialmente para evitarme ese problema yo inicialmente ni siquiera lo utilizaría entonces es por eso que en el cliente así para web que usualmente siempre vamos a querer posicionar como lo he comentado hoteles o lo que sea siempre vamos a querer posicionarlas en alguna medida no sería recomendado emplear una web SPA.

Inertia, Vue en vez de blade y poco más

La característica fuerte que tenemos en inertia es que aquí se devuelve un componente en view en vez de un blade es así de simple eso es el 90% de inert aquí tal cual lo puedes ver aquí tenemos en vez de view tenemos inertia:

public function create()
{
    $categories = Category::get();
    return inertia("dashboard/post/Save", compact('categories'));
}

Al emplear Inertia, no ganamos nada más que eso, a diferencia de Livewire, en la cual podemos definir operaciones relacionadas a la operación mediante eventos de livewire:

<x-button class="flex-shrink-0" wire:click="tagSave">
    {{ __('Set') }}
</x-button>

Y llamar a métodos del componente de manera directa:

public function tagSave()
{
    // dd($this->tags[$this->tag_selected]);

    if ($this->tag_selected != null) {
        $t = Tag::find($this->tag_selected);
        $this->tagsSelected[$t->id] = $t->title;

        if ($this->post)
            $this->post->tags()->sync(array_keys($this->tagsSelected));
    }
}

Inertia para un Dashboard… no es la mejor opción

Yo no emplearía Inertia para el dashboard yo realmente yo siempre veo Vue y todas esas tecnologías más que todo para el usuario final entiéndase para esto esto es lo que me refiero porque como podemos agregar botoncitos animaciones el poco de pluño que tenemos para esas pendejadas el CCS y todo lo demás para que sea agradable para el usuario yo lo emplaría por ahí mientras que el dashboard seguramente has visto muchos memes por ahí en internet siempre te parece el front una princesa y el y el backend como un monstruo y es realmente así porque usualmente siempre invertimos un poco ya sea a proyectos personales o ya sea proyectos para terceros siempre se invierte más es para el usuario final porque es el que paga es así de simple mientras que para el backend hacemos lo mínimo necesario y siempre intentamos en algún momento seguir implementándolo pero siempre tenemos cosas que hacer en el cliente entonces por tal motivo tampoco veo una como quien dice una algo fuerte en la cual yo diga que tenemos que emplear sí o sí Vue en el en el dashboard para el de gestión al menos que quieras emplar un plugin o algo así muy específico pero aún así bueno está un poco forzado como digo entonces y aún así y aún así fíjate algo para el Dashboard

Livewire mejor que Inertia para el Dashboard

Yo emplaría siempre LIvewire porque tenemos más características o mejor dicho tenemos una mejor conexión porque a la final todo eso es blade o es Laravel a la final a diferencia de lo que tenemos en Vue; en base a lo mostrado antes, si queremos para un módulo para actualizar un POST:

  1. Asignar etiquetas
  2. Remover etiquetas
  3. Clonar

Todas estas operaciones, hacerlas desde Inertia no cambian mucho de lo que haríamos en Laravel base, tendríamos que crear rutas, controladores asociados, peticiones axios o mediante Inertia… pero en Livewire lo llamamos de manera directa, como mostramos antes, ganando con esto tiempo, escalabilidad y modularización en nuestro proyecto

Por lo comentado yo en el dashboard siempre emplearía Livewire pero puede que en algún punto se alineen los astros y tú digas mira hay algún plugin o alguna cuestión aquí porque quiero que sea muy bonita mejor empleemos sintiera ser pero aún así como te digan la tiene difícil no digo que en ningún proyecto se puede emplear seguramente habrán algunos casos muy puntuales pero aún así la Livewire para la facilidad la tiene difícil

Rest API + Laravel es la mejor opción

Hoy en día, *todas* las aplicaciones web tienen su equivalente en movil, Udemy, Duolingo, Gmail…  Por ejemplo, si yo la web de academia que tengo en este blog,  la hubiera empleado con inertia cuando yo hubiera querido crear la aplicación móvil hubiera tenido un tremendo problema porque obviamente para mantenerlo simple aquí tú recuerda que tú puedes aquí ver los libros y ver los cursos comprarlos listarlos filtrarlos eh visualizarlos descargarlos todos eso son a la final controladores que yo tengo implementado de alguna manera ya sea con inertia o ya sea en este caso mediante una una RestApi si yo hubiera empleado inertia para crear esto obviamente lo hubiera desarrollado más rápido porque si comparamos el enfoque tradicional Rest Api + Laravel + Vue o React o lo que tú quieras es más largo que emplear la Laravel + inertida por más que sea ahí nos arramos alguna cosita aunque no tanto realmente pero 

¿cuál es el problema precisamente cuando lo comparamos con esas aplicaciones como te comentaba cualquier aplicación hoy en día Udemy?

Si hubiera empleado Inertia no hubiera tenido esa RestAPI por lo tanto todo eso lo hubiera tenido que desarrollar yo de manera manual cuando quería crear la aplicación en Flutter, que se conectara a esa RestAPI, por lo tanto, tuviera que haber duplicado cada uno de los controladores de Inertia para la web de academia para los controladores de la Rest API, y cada cambio que quisiera hacer, tendría que tocar los controladores de Inertia y la Rest API de manera paralela, trayendo redundancia a nuestra aplicación y dificultando la lógica de la misma.

- Andrés Cruz

In english

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.

!Cursos desde!

10$

En Udemy

Quedan 1d 00:25!


Udemy

!Cursos desde!

4$

En Academia

Ver los cursos

!Libros desde!

1$

Ver los libros
¡Hazte afiliado en Gumroad!