Patrones Probados de Pinia

Rate this content
Bookmark

Con la nueva y mejorada biblioteca de gestión de estado de Vue, Pinia, obtenemos una herramienta mucho más modular. Siendo más flexible, más ligera y sin las Mutaciones de Vuex, Pinia nos presenta más oportunidades para ser creativos, para bien o para mal, con la arquitectura de nuestra aplicación y cómo se lleva a cabo y se organiza la gestión del estado dentro de ella.

Esta charla explora algunas mejores prácticas aprobadas por @posva y patrones de diseño arquitectónico a considerar cuando se utiliza Pinia en producción.

FAQ

Adam Jarr es el cofundador de Vue Mastery, un recurso de aprendizaje para desarrolladores de Vue.

Pinnia es una evolución de VueX que ofrece una gestión de estado más ligera, modular y menos prescriptiva para aplicaciones de Vue.

Pinnia es útil para patrones consistentes de organización colaborativa, especialmente en equipos grandes, y ofrece seguridad mejorada para SSR, soporte de TypeScript y herramientas de desarrollo integradas.

Pinnia permite patrones predecibles para mutar el estado y ofrece funciones como 'patch' y 'reset' que ayudan a manejar el estado de manera efectiva.

Pinnia ayuda a crear aplicaciones bien estructuradas, evitando anti-patrones y permitiendo que el estado de la aplicación escale eficientemente.

Es una aplicación demostrativa utilizada en la charla para mostrar cómo Pinnia puede gestionar el estado global, permitiendo a los usuarios buscar restaurantes, guardar favoritos y leer reseñas.

Pinnia es diseñado para gestionar de manera segura y eficiente el estado en aplicaciones SSR, reduciendo las posibles vulnerabilidades de seguridad.

Las DevTools proporcionan una visión clara y comprensible del estado de las aplicaciones, facilitando la depuración y ayudando en la colaboración efectiva dentro de los equipos de desarrollo.

Adam Jahr
Adam Jahr
20 min
15 May, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Pinnia es una solución de gestión de estado más ligera y modular para las aplicaciones Vue, ofreciendo patrones consistentes, soporte para TypeScript y una experiencia de desarrollo intuitiva. PINIA fomenta la división del estado en dominios manejables, mejorando la división de código, las inferencias de tipo, la colaboración en equipo y la claridad de la depuración. Pinia proporciona flexibilidad para acceder y mutar el estado, con diferentes enfoques para las tiendas de opciones y configuración. También ofrece características como los métodos patch, reset y onAction. Vue Mastery ofrece cursos y recursos de Pinnia completos para un aprendizaje rápido.

Available in English: Proven Pinia Patterns

1. Introducción a Pinnia y sus características

Short description:

Hola, soy Adam Jarr, cofundador de Vue Mastery. Hoy, exploraremos Pinnia, una solución de gestión de estado más ligera y modular para las aplicaciones Vue. Cubriremos la organización de tiendas, opciones frente a tiendas de configuración, acceso y actualización del estado, y características únicas de Pinnia como patch y reset. Usaremos una aplicación de demostración, un buscador de restaurantes, para ilustrar estos conceptos. ¡Empecemos!

Hola, mi nombre es Adam Jarr. Soy cofundador de Vue Mastery, el recurso de aprendizaje definitivo para los desarrolladores de Vue. A través de nuestra colección de cursos de Vue, puedes mejorar tus habilidades, elevar tu code y convertirte en el mejor desarrollador de Vue que puedas ser.

Así que en la charla de hoy, vamos a hacer un viaje profundo en el ecosystem de Vue para explorar el planeta de Pinnia. Como todos deberíamos saber ya, Pinnia es la evolución de donde estaba VueX, aportando una versión más nueva, más ligera, más modular, menos prescriptiva, y más liberadora de la state management en nuestras aplicaciones de Vue. Y como dice el refrán, con gran libertad viene gran responsabilidad. Y ahora tenemos más responsabilidad porque podemos ser creativos en cómo implementamos la state management en nuestras aplicaciones de Vue. Y cuando hacemos esto bien, podemos usar Pinnia para desarrollar aplicaciones muy elegantemente arquitecturadas, evitando anti-patrones, y creando una aplicación cuyo estado puede scale a medida que nosotros scale.

Y eso nos lleva al enfoque de la charla de hoy, donde desempaquetamos los probados patterns de Pinnia que puedes usar con confianza en tus aplicaciones, porque esta charla y su contenido fueron aprobados por Posva, o Eduardo San Martín Marrote, el creador de Pinnia. Así que al final de esta charla, habremos cubierto la organización de nuestras tiendas Pinnia, opciones frente a tiendas de configuración, cómo difieren, cuál podrías querer elegir para qué caso de uso, acceso y actualización de tu estado Pinnia. Y también exploraremos algunas características únicas de Pinnia como patch y reset. A lo largo de esta charla, vamos a estar mirando una aplicación de demostración para que podamos aplicar y desempaquetar estas características en un caso de uso más real. Y como puedes ver, esto es un Buscador de Restaurantes. Vas a escribir la ciudad y buscar en Sherm para encontrar restaurantes dentro de una cierta área, y el usuario puede registrar una cuenta. Pueden guardar sus favoritos, y pueden leer información extraída de la API de Google Maps, como calificaciones y reseñas. Esta aplicación va a estar rastreando cada una de sus preocupaciones lógicas a nivel global con sus propias tiendas Pinnia, y vamos a cubrir todo esto a lo largo de la charla, así que comencemos.

2. Por qué usar Pinnia y sus características

Short description:

La API de composición de Vue 3 proporciona una solución básica de gestión de estado, pero Pinnia ofrece patrones consistentes para la organización colaborativa, seguridad SSR, DevTools para la depuración, soporte para TypeScript y una experiencia de desarrollo intuitiva. Si necesitas estas características, Pinnia es el camino a seguir.

Antes de profundizar en los conceptos de Pinnia, aclaremos primero por qué querrías usar Pinnia en primer lugar, porque Vue 3 ya tiene la composition API con un sistema de reactivity incorporado con la flexibilidad para compartir y reutilizar el estado. Simplemente usando la composition API, podríamos crear un objeto reactivo para servir como una tienda para gestionar nuestro estado global. Luego simplemente importaríamos esa tienda en cualquier componente que la necesite, y debido a cómo funciona el sistema de reactivity de Vue, cualquier componente que importe esa tienda puede mutar directamente su estado global. Y si ese estado cambiara y tuviera una plantilla que estuviera mostrando ese estado, esa plantilla cambiaría de forma reactiva también.

Entonces, de nuevo, si podemos simplemente usar la composition API para crear una versión mínima y fundamental de state management en una aplicación de Vue 3, ¿cuándo exactamente necesitaríamos una biblioteca de state management como Pinnia? Bueno, va a ser útil cuando quieras tener patrones consistentes para la organización colaborativa. Esto es especialmente importante para los grandes equipos que están colaborando en una aplicación a gran escala. Un patrón que podrías querer seguir de manera colaborativa es una forma predecible de mutar el estado y las acciones dentro de Pinnia nos permiten lograr eso. La seguridad de SSR es otra cosa a considerar y por qué podrías querer usar Pinnia porque cuando estás usando la renderización del lado del servidor, necesitarás tener cuidado con cómo gestionas el estado global ya que las aplicaciones de SSR, inicializan los módulos de la aplicación en el servidor y luego comparten ese estado en cada solicitud. Por lo tanto, esto podría llevar a vulnerabilidades de seguridad, pero Pinnia fue diseñado para hacerlo más seguro y fácil para gestionar el estado en esas aplicaciones renderizadas en el servidor. Además, al usar Pinnia, obtenemos las DevTools y toda la transparencia y la visión útil que esas herramientas pueden proporcionarnos. Esto va a hacer que la depuración y la comprensión real del estado de nuestras aplicaciones sea mucho más clara. Cada vez es más importante para los desarrolladores de JavaScript trabajar con herramientas que tengan soporte para TypeScript, y Pinnia tiene un soporte de primera clase para usar TypeScript. Todas estas razones combinadas crean una experiencia de desarrollo suave e intuitiva cuando estás usando Pinnia para gestionar el estado en tus aplicaciones. Por lo tanto, si tus necesidades incluyen cualquiera de las cosas que he enumerado en esta lista aquí, probablemente vas a querer decidir usar Pinnia en lugar de simplemente confiar en la Composition API para tus necesidades de state management. Así que todo esto para decir, cuando usas Pinnia, vas a estar empoderado con una forma robusta y refinada de gestionar el estado en tu aplicación, arquitectándola de una manera que puedas depurar y colaborar bien entre tu equipo. Entonces, ahora que tenemos claro cuándo exactamente querríamos usar Pinnia, comencemos a explorar esas características.

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

Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Concurrent React y Server Components están cambiando la forma en que pensamos sobre el enrutamiento, la renderización y la obtención de datos en las aplicaciones web. Next.js recientemente compartió parte de su visión para ayudar a los desarrolladores a adoptar estas nuevas características de React y aprovechar los beneficios que desbloquean.En esta charla, exploraremos el pasado, presente y futuro del enrutamiento en las aplicaciones de front-end y discutiremos cómo las nuevas características en React y Next.js pueden ayudarnos a arquitectar aplicaciones más eficientes y con más funciones.
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!
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.
El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
React Summit US 2023React Summit US 2023
28 min
El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
Top Content
Cuando se trata de construir interfaces caprichosas, React es un aliado sorprendentemente capaz. En esta charla, te mostraré cómo uso React para orquestar interacciones complejas al profundizar en algunos ejemplos de mi blog.
Deja de Escribir tus Rutas
Vue.js London 2023Vue.js London 2023
30 min
Deja de Escribir tus Rutas
Cuanto más trabajas en una aplicación, más complicado se vuelve su enrutamiento y más fácil es cometer un error. "¿Se llamaba la ruta usuarios o usuario?", "¿Tenía un parámetro id o era userId?". Si solo TypeScript pudiera decirte cuáles son los nombres y parámetros posibles. Si solo no tuvieras que escribir una sola ruta más y dejar que un complemento lo haga por ti. En esta charla repasaremos lo que se necesitó para traer rutas automáticamente tipadas para Vue Router.
Nuxt en el Edge
Vue.js London 2023Vue.js London 2023
30 min
Nuxt en el Edge
Aprende cómo construir una aplicación Vue implementada en el edge para brindar una experiencia ultrarrápida a tus usuarios finales.

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
Master Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Master Patrones de JavaScript
Workshop
Adrian Hajdin
Adrian Hajdin
Durante este masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debe conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final del masterclass, los participantes ganarán confianza en su capacidad para escribir código JavaScript de alta calidad que perdure en el tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento profesional y las oportunidades de avance en la industria del software
Embarcándonos en una aventura con Nuxt 3, Motion UI y Azure
JSNation 2022JSNation 2022
141 min
Embarcándonos en una aventura con Nuxt 3, Motion UI y Azure
WorkshopFree
Melanie de Leeuw
Melanie de Leeuw
¡Nos encantan las aplicaciones web fáciles de crear y desplegar! Entonces, veamos qué puede hacer una pila tecnológica muy actual como Nuxt 3, Motion UI y Azure Static Web Apps. Podría ser perfectamente un trío de oro en el desarrollo web moderno. O podría ser una hoguera de errores y problemas. De cualquier manera, será una aventura de aprendizaje para todos nosotros. Nuxt 3 se lanzó hace apenas unos meses y no podemos esperar más para explorar sus nuevas características, como su compatibilidad con Vue 3 y el Motor Nitro. Agregamos un poco de estilo a nuestra aplicación con la biblioteca Sass Motion UI, porque el diseño estático está pasado de moda y las animaciones vuelven a estar de moda.Nuestra fuerza impulsora de la pila será Azure. Las aplicaciones web estáticas de Azure son nuevas, casi listas para producción y una forma ingeniosa y rápida para que los desarrolladores desplieguen sus sitios web. Así que, por supuesto, debemos probar esto.Con algunas Azure Functions esparcidas por encima, exploraremos lo que puede hacer el desarrollo web en 2022.
Construyendo aplicaciones GraphQL de pila completa con Hasura y Vue 3
Vue.js London Live 2021Vue.js London Live 2021
115 min
Construyendo aplicaciones GraphQL de pila completa con Hasura y Vue 3
WorkshopFree
Gavin Ray
Gavin Ray
El ecosistema frontend avanza a un ritmo frenético. Este masterclass tiene como objetivo equipar a los participantes con una comprensión del estado del ecosistema Vue 3 + GraphQL, explorando ese ecosistema - prácticamente y a través del desarrollo de aplicaciones de pila completa.

Tabla de contenidos
- Los participantes utilizarán Hasura para construir una API GraphQL en tiempo real respaldada por Postgres. Juntos recorreremos su consumo desde un frontend y haremos que el frontend sea reactivo, suscrito a los cambios de datos.
- Además, analizaremos las herramientas comúnmente utilizadas en el stack Vue GraphQL (como Apollo Client y Urql), discutiremos algunas alternativas menos conocidas y abordaremos los problemas frecuentemente encontrados al comenzar.
- Se describirán varios patrones para gestionar datos con estado y sus compensaciones durante el masterclass, y se mostrará una implementación básica para cada patrón discutido.
Nivel del masterclass

NOTA: No se requiere experiencia previa con GraphQL, pero puede ser útil para ayudar a la comprensión. Se cubrirán los fundamentos.
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
React Advanced Conference 2022React Advanced Conference 2022
206 min
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
Workshop
Thomas Findlay
Thomas Findlay
Con el surgimiento de frameworks, como React, Vue o Angular, la forma en que se construyen los sitios web ha cambiado a lo largo de los años. Las aplicaciones modernas pueden ser muy dinámicas y realizar múltiples solicitudes de API para poblar un sitio web con contenido actualizado o enviar nuevos datos a un servidor. Sin embargo, este cambio de paradigma ha introducido nuevos problemas con los que los desarrolladores deben lidiar. Cuando una solicitud de API está pendiente, tiene éxito o falla, el usuario debe recibir una retroalimentación significativa. Otros problemas pueden incluir el almacenamiento en caché de datos de API o la sincronización del estado del cliente con el servidor. Todos estos problemas requieren soluciones que deben ser codificadas, pero pueden volverse rápidamente inmanejables y dar como resultado una base de código difícil de ampliar y mantener. En este masterclass, cubriremos cómo manejar las solicitudes de API, los estados de API y la cancelación de solicitudes mediante la implementación de una Capa de API y combinándola con React-Query.
Prerrequisitos: Para aprovechar al máximo este masterclass, debes estar familiarizado con React y Hooks, como useState, useEffect, etc. Si deseas codificar junto con nosotros, asegúrate de tener Git, un editor de código, Node y npm instalados en tu máquina.