Todo Más Allá de la Gestión de Estado en Tiendas con Pinia

Rate this content
Bookmark

Cuando pensamos en Vuex, Pinia, o tiendas en general, a menudo pensamos en la gestión de estado y los patrones Flux, pero no solo las tiendas no siempre siguen el patrón Flux, ¡hay mucho más en las tiendas que las hace valer la pena usar! Plugins, Devtools, renderizado en el lado del servidor, integraciones TypeScript... Vamos a sumergirnos en todo más allá de la gestión de estado con Pinia con ejemplos prácticos sobre plugins y Devtools para sacar el máximo provecho de tus tiendas.

FAQ

Eduardo es un desarrollador frontend que vive en París y es miembro del equipo central de Vue.js. Además, es el autor del enrutador de Vue.js y de una biblioteca llamada Pina.

Pina es una pequeña biblioteca desarrollada por Eduardo que sirve como una alternativa a Vue.js para la gestión del estado en aplicaciones. Es una biblioteca de tiendas que proporciona funcionalidades similares a Vuex.

La gestión del estado se refiere al manejo de cómo se almacena, modifica y gestiona el estado global de una aplicación a lo largo del tiempo. Incluye técnicas y herramientas que permiten actualizar el estado de la aplicación de manera controlada.

Se debe considerar usar una solución de gestión del estado cuando la aplicación requiere compartir estados entre diferentes componentes o mantener estados persistentes a través de varias páginas, independientemente del tamaño de la aplicación.

Pina ofrece ventajas como un tamaño pequeño de aproximadamente 1.5 kilobytes, integración avanzada con DevTools, facilidad para manejar el estado con una API sencilla y eficiente, y soporte para renderización del lado del servidor.

Para integrar Pina, se debe importar la función createPina de la biblioteca Pina y luego crear un almacén de estados centralizado que se añade a la aplicación Vue durante su inicialización.

Pina proporciona funcionalidades como reemplazo de módulos en caliente, un módulo de pruebas, soporte avanzado para DevTools y una API de plugins que permite extender sus capacidades de manera segura y tipada.

Eduardo San Martin Morote
Eduardo San Martin Morote
34 min
20 Oct, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La gestión de estado no se limita a aplicaciones complejas y la transición a una tienda ofrece beneficios significativos. Pinia es una solución centralizada de gestión de estado compatible con Vue 2 y Vue 3, proporcionando soporte avanzado de devtools y extensibilidad con plugins. La API central de Pinia es similar a Vuex, pero con una versión menos verbosa de tiendas y plugins poderosos. Pinia permite una fácil inspección de estado, manejo de errores y pruebas. Se recomienda crear un archivo por tienda para una mejor organización y Pinia ofrece un rendimiento más eficiente en comparación con V-rex.

1. Introducción a la Gestión del Estado

Short description:

Hola, soy Eduardo, un desarrollador frontend y miembro del equipo central de Vue.js. Hoy, quiero discutir qué hay más allá de la gestión del estado y por qué importa. La gestión del estado no se limita a aplicaciones complejas. Depende de cómo se utiliza la tienda dentro de su aplicación. Pasar de una solución básica de gestión del estado global reactivo a una tienda es un pequeño paso con beneficios significativos, como la renderización del lado del servidor y los componentes de salida del estado. Un estado centralizado compartido por muchos componentes garantiza la escalabilidad.

Hola a todos. Mi nombre es Eduardo. Vivo en París. Soy un desarrollador frontend y también un miembro del equipo central de Vue.js. Soy el autor de su enrutador y una pequeña biblioteca llamada Pina, que es una alternativa a Vue.js, una biblioteca de tiendas, también, de la que voy a hablar hoy. Lo que quiero hablarles no es solo sobre Pina sino qué hay más allá de la gestión del estado, qué importa en la gestión del estado más que el estado en sí. Pero primero, antes de incluso sumergirse en Pina o cualquier otra cosa, ¿qué es la gestión del estado? Es solo tener un objeto global con algunas funciones como esa, estado global. Tienes una función de registro que te permite cambiar un estado. ¿Es esto la gestión del estado? Y la gente te dirá que lo es. Y para ser honesto, prácticamente lo es, especialmente si solo agregas una llamada de función reactiva alrededor de ese objeto. Bueno, tienes un estado completamente válido, una solución de estado global que funciona para tu aplicación de vista tres o vista dos. Y esto sigue siendo la gestión del estado y algunas personas te dirán que la gestión del estado es algo que tienes y creas cuando tienes aplicaciones más grandes o de tamaño mediano a grande o cuando sabes que tu aplicación va a crecer y va a necesitar esa complejidad en el futuro. Pero esto es prácticamente como, no necesitas tener una aplicación compleja para necesitar o considerar el uso de una solución de gestión del estado o una tienda. Lo que define si debes o no usar una solución de gestión del estado es cómo se utiliza la tienda dentro de tu aplicación. Por ejemplo, ¿se utiliza tu estado en muchos lugares diferentes en las páginas o tu estado sale de estas páginas? ¿Necesitas tu estado cuando pasas de una página a otra? Tal vez tu aplicación solo tiene tres páginas, pero requieres que ese estado salga de todas las páginas. Y en ese escenario necesitas una gestión del estado. Y luego la siguiente pregunta que viene a tu mente, a mi mente es ¿debería dejar de tener esa solución de gestión del estado global reactiva básica o debería usar una tienda? Y la verdad es que hay un paso muy pequeño para empezar a usar una tienda. Solo necesitas usar la tienda definida con PNIA o UX5 y puedes mantener prácticamente las mismas cosas que tenías. El estado va a estar en un estado vertical. Luego vas a tener, uh, la variable de estado global se va a convertir en estas. Entonces es igual a algo. Entonces el cambio es muy simple. Y el costo en términos de tamaño, también es, uh, muy pequeño es como 1.5 kilobytes para PNIA. Um, pero por supuesto viene con muchas otras cosas, ¿verdad? Entonces, ¿realmente necesitas una tienda? ¿Qué te hace cambiar de opinión? ¿Qué significa pasar de, está bien, voy a dejar de usar mi solución variable y empezar a usar una tienda. Y hay algunas razones que te harán ir en esa dirección. La principal razón es la renderización del lado del servidor, uh, definitivamente es mucho más fácil de manejar con una tienda como PNIA o Vuex, um, pero hay muchas más, así que también tienes componentes de salida del estado. Uh, esto prácticamente sale de la caja para las soluciones de gestión del estado también. Pero, uh, dependiendo de cómo y dónde quieras instanciarlo, el estado global no es algo que siempre viene. Y luego tienes el estado centralizado compartido por muchos componentes. Entonces, si creas un solo estado global, eso no va a escalar

2. Los Beneficios de Usar una Tienda como PNIA

Short description:

Si sigues añadiendo cosas a tu estado, se volverá más grande y complejo. Usar un objeto global para la gestión del estado carece de experiencia de desarrollador y dificulta el seguimiento de los cambios. Las pruebas e implementación de funcionalidades adicionales se vuelven más desafiantes. Con una tienda como PNIA, estos problemas se resuelven y todo viene de serie.

para siempre. Si sigues añadiendo cosas, nuevas funciones, nuevas propiedades a tu estado, en algún momento ese estado y ese archivo se van a hacer más grandes. También puedes dividir varios archivos, pero vas a hacer que tu objeto crezca en complejidad demasiado. Y eso va a crear todo Si observas el estado o haces cualquier otra cosa complicada. También tienes una mejor developer experience. Entonces, si estás usando un objeto global, no puedes inspeccionar, cambiar ese estado dentro de Dev Tools en algún lugar. Tienes que hacerlo manualmente a través del inspector de componentes. No tienes nada en la línea de tiempo. No sabes de dónde vienen los cambios en la tienda, en los estados Si quieres mantener tu estado mientras estás cambiando la tienda o tu solución de state management, va a recargar la página, tendrás que manejar la sustitución en caliente tú mismo. Luego, si quieres hacer pruebas o necesitas probar tus componentes, vas a necesitar simular tu solución de state management o probarla dos veces. Así que, tienes pruebas para tu state management y también pruebas que dependen del comportamiento de la tienda en el componente. Y luego, si quieres manejar el almacenamiento local o deshacer/rehacer o cualquier otra funcionalidad que sea más genérica y que se aplique a cualquier tienda, cualquier solución de state management, vas a tener que implementar eso por ti mismo, mientras que si tienes una tienda, todas estas cosas vienen de serie. No necesitas hacer nada. Así que por eso quiero hablarles un poco sobre cómo logramos estas cosas, y cuáles son estas cosas que existen cuando tú

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Uso efectivo de useEffect
React Advanced Conference 2022React Advanced Conference 2022
30 min
Uso efectivo de useEffect
Top Content
¿Puede useEffect afectar negativamente a tu base de código? Desde la obtención de datos hasta la lucha con las APIs imperativas, los efectos secundarios son una de las mayores fuentes de frustración en el desarrollo de aplicaciones web. Y seamos honestos, poner todo en ganchos useEffect no ayuda mucho. En esta charla, desmitificaremos el gancho useEffect y obtendremos una mejor comprensión de cuándo (y cuándo no) usarlo, así como descubriremos cómo los efectos declarativos pueden hacer que la gestión de efectos sea más mantenible incluso en las aplicaciones React más complejas.
Bienvenido a Nuxt 3
Vue.js London Live 2021Vue.js London Live 2021
29 min
Bienvenido a Nuxt 3
Top Content
Explica sobre la refactorización del código base de NuxtJS y los desafíos que enfrenta para implementar Vue 3, Vite y otros paquetes.
Un Año en Vue 3
Vue.js London Live 2021Vue.js London Live 2021
20 min
Un Año en Vue 3
Top Content
Vue 3 puede sonar aún nuevo para muchos usuarios, pero en realidad ya ha sido lanzado hace más de un año. ¿Cómo evolucionó Vue 3 durante este período? ¿Por qué tardó tanto en ponerse al día el ecosistema? ¿Qué aprendimos de este proceso? ¿Qué viene después? ¡Discutiremos estas preguntas en esta charla!
React Query: ¡Es hora de romper con tu "Estado Global"!
React Summit Remote Edition 2020React Summit Remote Edition 2020
30 min
React Query: ¡Es hora de romper con tu "Estado Global"!
Top Content
Una cantidad creciente de datos en nuestras aplicaciones React proviene de fuentes remotas y asíncronas y, aún peor, continúa disfrazándose como "estado global". En esta charla, obtendrás información sobre por qué la mayoría de tu "estado global" en realidad no es un estado en absoluto y cómo React Query puede ayudarte a buscar, almacenar en caché y gestionar tus datos asíncronos con una fracción del esfuerzo y el código al que estás acostumbrado.
Utilizando Rust desde Vue con WebAssembly
Vue.js London Live 2021Vue.js London Live 2021
8 min
Utilizando Rust desde Vue con WebAssembly
Top Content
Rust es un nuevo lenguaje para escribir código de alto rendimiento, que puede ser compilado a WebAssembly, y ejecutado dentro del navegador. En esta charla se te guiará sobre cómo puedes integrar Rust, dentro de una aplicación Vue, de una manera que es sencilla y fácil. Con ejemplos de cómo interactuar con Rust desde JavaScript, y algunas de las trampas a tener en cuenta.
Vue: Actualizaciones de Características
Vue.js London 2023Vue.js London 2023
44 min
Vue: Actualizaciones de Características
Top Content
El creador de Vue js da una actualización sobre las nuevas características de la tecnología.

Workshops on related topic

Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Repensando el Estado del Servidor con React Query
React Summit 2020React Summit 2020
96 min
Repensando el Estado del Servidor con React Query
Top Content
Featured Workshop
Tanner Linsley
Tanner Linsley
La distinción entre el estado del servidor y el estado del cliente en nuestras aplicaciones puede ser un concepto nuevo para algunos, pero es muy importante entenderlo cuando se entrega una experiencia de usuario de primera calidad. El estado del servidor viene con problemas únicos que a menudo se cuelan en nuestras aplicaciones sorpresa como:
- Compartir datos entre aplicaciones- Caché y Persistencia- Deduplicación de Solicitudes- Actualizaciones en segundo plano- Gestión de Datos "Obsoletos"- Paginación y Recuperación Incremental- Memoria y Recolección de Basura- Actualizaciones Optimistas
Los gestores tradicionales de "Estado Global" pretenden que estos desafíos no existen y esto finalmente resulta en que los desarrolladores construyan sus propios intentos sobre la marcha para mitigarlos.
En esta masterclass, construiremos una aplicación que expone estos problemas, nos permite entenderlos mejor, y finalmente los convierte de desafíos a características usando una biblioteca diseñada para gestionar el estado del servidor llamada React Query.
Al final de la masterclass, tendrás una mejor comprensión del estado del servidor, el estado del cliente, la sincronización de datos asíncronos (un bocado, lo sé), y React Query.
Usando Nitro - Construyendo una Aplicación con el Último Motor de Renderizado de Nuxt
Vue.js London Live 2021Vue.js London Live 2021
117 min
Usando Nitro - Construyendo una Aplicación con el Último Motor de Renderizado de Nuxt
Top Content
Workshop
Daniel Roe
Daniel Roe
Construiremos un proyecto Nuxt juntos desde cero usando Nitro, el nuevo motor de renderizado de Nuxt, y Nuxt Bridge. Exploraremos algunas de las formas en que puedes usar y desplegar Nitro, mientras construimos una aplicación juntos con algunas de las restricciones del mundo real que enfrentarías al desplegar una aplicación para tu empresa. En el camino, dispara tus preguntas hacia mí y haré lo mejor para responderlas.
Gestión del estado en React con Context y Hooks
React Summit Remote Edition 2021React Summit Remote Edition 2021
71 min
Gestión del estado en React con Context y Hooks
WorkshopFree
Roy Derks
Roy Derks
Mucho ha cambiado en el mundo de la gestión del estado en React en los últimos años. Donde Redux solía ser la principal biblioteca para esto, la introducción de las API de Contexto y Hooks de React ha revolucionado las cosas. Ya no necesitas bibliotecas externas para manejar tanto el estado del componente como el estado global en tus aplicaciones. En este masterclass aprenderás los diferentes enfoques para la gestión del estado en la era post-Redux de React, ¡todos basados en Hooks! Y como bonificación, exploraremos dos próximas bibliotecas de gestión del estado en el ecosistema de React.
TresJS crea experiencias 3D de forma declarativa con componentes Vue
Vue.js London 2023Vue.js London 2023
137 min
TresJS crea experiencias 3D de forma declarativa con componentes Vue
Workshop
Alvaro Saburido
Alvaro Saburido
- Introducción a 3D- Introducción a WebGL- ThreeJS- Por qué TresJS- Instalación o configuración de Stackblitz- Conceptos básicos- Configuración del lienzo- Escena- Cámara- Agregar un objeto- Geometrías- Argumentos- Props- Slots- El bucle- Composable UseRenderLoop- Callbacks antes y después de la renderización- Animaciones básicas- Materiales- Material básico- Material normal- Material Toon- Material Lambert- Material estándar y físico- Metalness, roughness- Luces- Luz ambiental- Luz direccional- Luces puntuales- Sombras- Texturas- Cargar texturas con useTextures- Consejos y trucos- Misceláneo- Controles de órbita- Cargar modelos con Cientos- Depuración de tu escena- Rendimiento
Construyendo formularios Vue con VeeValidate
Vue.js London Live 2021Vue.js London Live 2021
176 min
Construyendo formularios Vue con VeeValidate
Workshop
Abdelrahman Awad
Abdelrahman Awad
En este masterclass, aprenderás cómo usar vee-validate para manejar la validación de formularios, gestionar los valores de los formularios y manejar las presentaciones de manera efectiva. Comenzaremos desde lo básico con un formulario de inicio de sesión simple hasta el uso de la API de composición y la construcción de formularios repetibles y de múltiples pasos.

Tabla de contenidos:
- Introducción a vee-validate
- Construcción de un formulario básico con componentes vee-validate
- Manejo de validación y presentaciones de formularios
- Construcción de componentes de entrada validables con la API de composición
- Arrays de campos e inputs repetibles
- Construcción de un formulario de múltiples pasos
Prerrequisitos:
Configuración de VSCode y un proyecto Vite + Vue vacío.