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.

This talk has been presented at Vue.js London 2023, check out the latest edition of this JavaScript Conference.

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

Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Vue.js London Live 2021Vue.js London Live 2021
34 min
Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Top Content
State management is not limited to complex applications and transitioning to a store offers significant benefits. Pinia is a centralized state management solution compatible with Vue 2 and Vue 3, providing advanced devtools support and extensibility with plugins. The core API of Pinia is similar to Vuex, but with a less verbose version of stores and powerful plugins. Pinia allows for easy state inspection, error handling, and testing. It is recommended to create one file per store for better organization and Pinia offers a more efficient performance compared to V-rex.
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
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
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 has seen significant adoption and improvements in performance, bundle size, architecture, and TypeScript integration. The ecosystem around Vue 3 is catching up, with new tools and frameworks being developed. The Vue.js.org documentation is undergoing a complete overhaul. PNIA is emerging as the go-to state management solution for Vue 3. The options API and composition API are both viable options in Vue 3, with the choice depending on factors such as complexity and familiarity with TypeScript. Vue 3 continues to support CDN installation and is recommended for new projects.
Vue: Actualizaciones de Características
Vue.js London 2023Vue.js London 2023
44 min
Vue: Actualizaciones de Características
Top Content
The Talk discusses the recent feature updates in Vue 3.3, focusing on script setup and TypeScript support. It covers improvements in defining props using imported types and complex types support. The introduction of generic components and reworked signatures for defined components provides more flexibility and better type support. Other features include automatic inference of runtime props, improved define emits and defined slots, and experimental features like reactive props destructure and define model. The Talk also mentions future plans for Vue, including stabilizing suspense and enhancing computer invalidations.
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
The speaker discusses the whimsical and detailed work of Stripe, particularly their interactive and dynamic pages. They explain the use of React for building whimsical details and tracking mouse position. The speaker introduces React Spring for smooth animation and React3 Fiber for creating a 3D egg model. They also mention the use of Framer Motion and React server components for animating CSS properties.
Deja de Escribir tus Rutas
Vue.js London 2023Vue.js London 2023
30 min
Deja de Escribir tus Rutas
Designing APIs is a challenge, and it's important to consider the language used and different versions of the API. API ergonomics focus on ease of use and trade-offs. Routing is a misunderstood aspect of API design, and file-based routing can simplify it. Unplugging View Router provides typed routes and eliminates the need to pass routes when creating the router. Data loading and handling can be improved with data loaders and predictable routes. Handling protected routes and index and ID files are also discussed.

Workshops on related topic

Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería 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 de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del 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 la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
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 Kuznetsov
Mikhail Kuznetsov
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
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 2022React Advanced 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.