Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

179
Vistas
¿Cuál es la forma común de encapsular datos dentro de las tiendas de Pinia cuando se usa la API de composición?

Estoy usando Vue 3 con Pinia y quiero usar la API de composición dentro de mis tiendas Pinia. Dada la siguiente tienda de ejemplo

 export const useMyStore = defineStore("my", () => { const currentState = ref(0); return { currentState }; } );

Puedo modificar directamente el valor de currentState . No estoy seguro de si este es el camino a seguir o si debería evitar esto y proporcionar algunas funciones de obtención y configuración como

 export const useMyStore = defineStore("my", () => { const currentState = ref(false); const readonlyCurrentState = computed((): Readonly<boolean> => currentState.value); function changeState(newState: boolean) { currentState.value = newState; } return { readonlyCurrentState, changeState }; } );

La API de opciones resuelve el problema al proporcionar captadores y acciones, así que pensé si debería lograr lo mismo aquí.

Esta podría ser una pregunta basada en una opinión, pero me gustaría saber si debo encapsular el estado currentState para evitar la corrupción por accidente.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puedo modificar directamente el valor de currentState

Sí, esto es intencional. Como se describe en comparación con Vuex

las mutaciones ya no existen. Muy a menudo se los percibía como extremadamente detallados. Inicialmente trajeron la integración de devtools, pero eso ya no es un problema.

Esta es una razón más técnica, pero puede leer más del propio autor (y de las personas a las que no les gusta esta nueva "libertad") en esta discusión: agregue una opción para no permitir la modificación directa del estado del componente

En general, el código en su pregunta demuestra el punto perfectamente: mucho código innecesario solo para cambiar el valor booleano simple. Por supuesto, hay casos en los que los datos son más complejos, desea imponer algunas restricciones, etc., donde la mutación directa sin restricciones puede considerarse peligrosa. Creo que el patrón en su pregunta es perfectamente viable y puede encontrar más ideas (y compromiso de soporte de "modo estricto" experimental esperando comentarios) en la discusión vinculada

Personalmente, creo que muchas de las comprobaciones de seguridad se pueden realizar con pelusa y, especialmente, con definiciones de TypeScript. Obtiene la seguridad adicional durante el desarrollo sin pagar el precio en tiempo de ejecución (en términos de ejecución de código adicional y empaquetado y servicio). Lo bueno de Pinia es que nos da la opción de cómo abordar el problema...

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda