Hola, soy Eduardo, soy miembro del equipo central de Vue.js, trabajo como desarrollador front-end independiente y soy el autor de uRouter y Pina, entre otras bibliotecas, y puedes encontrarme en persona en París en algunos de los encuentros o en línea como Pozva.
Y hoy quiero hablarles sobre un tema que me es muy querido porque está relacionado con el enrutador, que son los data loaders. Esto es mucho más que simplemente obtener datos, pero creo que obtener datos será el caso de uso más común para esta característica.
Y actualmente, si estás interesado o deseas aprender todos los detalles técnicos sobre esta característica, ya puedes hacerlo leyendo el RFC. Incluso tengo un sitio web para ello. Pero como puedes ver, esto es bastante largo. Realmente cubre todos los detalles técnicos que se me ocurrieron. Hay realmente mucho, pero cubre más de lo que incluso cubriría la documentation porque también cubre algunos casos especiales. Por supuesto, esto es un poco aburrido de explicar, así que mi objetivo hoy es mostrarte cómo usarlo y evitar que tengas que leer todo el RFC. Por supuesto, no podré entrar en todos los detalles de la implementación de los data loaders, pero aún te mostraré qué problema estamos resolviendo y cómo lo estamos resolviendo.
El problema que estamos resolviendo es la obtención de datos, que es difícil. Hay muchas formas de hacerlo, y te mostraré algunas formas de hacerlo. Tenemos un contenedor inicial de datos que vamos a llenar con los datos que queremos. Tenemos una referencia, y luego podemos llamar a una API en el montaje si queremos una forma en la que vamos a obtener datos y luego podemos mostrarlos. Pero a veces también queremos actualizar según la fila, como un ID en los parámetros. Entonces movemos eso a un observador, observamos los parámetros y luego volvemos a obtener los datos. Luego, lo que podríamos pensar es, bueno, todavía necesitamos manejar el estado de carga porque inicialmente los datos están vacíos, así que podría querer mostrar algún estado de carga. Agregamos eso y luego tenemos que alternar ese estado de carga entre verdadero y falso. Y luego pensamos, oh, espera, pero tal vez haya un error, así que también tengo que manejar eso. Entonces tienes un error, que nuevamente es otra referencia, y también manejas el error, y luego actualizas la plantilla.
Ahora, como puedes imaginar y probablemente experimentar, esto se vuelve muy repetitivo. Y debido a que es algo tan común en las aplicaciones, terminas repitiéndolo mucho. Por lo general, lo abstraes en un componible, e incluso puedes usar componibles existentes. Por ejemplo, podrías usar una consulta de vista de la pila de tareas, y así tienes solo cuatro líneas para lo que estamos haciendo en 20 o tal vez 15 líneas. Y esto es realmente bueno porque también ofrece todas las características como caché, a costa de una biblioteca más pesada, por supuesto, pero se separa de la capa de rutas. Por lo tanto, ya no se integra en la navegación. Y como resultado, tenemos una obtención de datos más independiente, que tiene sus propios beneficios, pero también algunas inconveniencias. Entonces, los data loaders están aquí para cerrar la brecha. Y por lo tanto, los objetivos de los data loaders son integrarse con el ciclo de navegación, por lo que se bloquearán o no. Puedes elegir lo que quieras.
Comments