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

161
Vistas
¿Cómo reutilizar un objeto global entre mini aplicaciones Vue.js en la misma página?

Dado que Vue.js afirma que es un marco progresivo, tendemos a actualizar nuestras compras en línea a un SPA respaldado por Vue.js en pequeños pasos.

Por ejemplo, usamos Vue.js para representar el mini carrito en la parte superior de la página. Y para dinamizar el formulario de pedido. Y para hacer dinámica la página de detalles del producto, etc.

Esto significa que definimos muchas aplicaciones pequeñas de vue en la misma página.

Sin embargo, aún deben compartir el mismo contexto. Porque cuando el usuario hace clic en el botón de buy en la página de detalles del producto, el contexto compartido debe actualizarse, de modo que el minicarrito en la parte superior de la página refleje la cantidad total de productos en el carrito.

Para este propósito, creamos una variable global, y en nuestras miniaplicaciones Vue.js la usamos como nuestros datos:

 var cart = { orderLines: [], itemsCount: 0} // this is our global cart object // this loads before any Vue code

Luego, en la aplicación mini-cart tenemos:

 var miniCart = { data() { return { cart: cart // this is where we reuse the global cart object, to create a shared context } }, computed: { itemsCount() { var _this = this; var itemsCount = 0; for (var i = 0; i < _this.cart.orderLines.length; i++) { itemsCount += _this.cart.orderLines[i].quantity || 0; } return itemsCount; } }, methods: { } }; Vue.createApp(miniCart).mount('#miniCart');

Y luego, en nuestro botón Agregar al carrito , en realidad aumentamos cart.orderLines[i].quantity .

Sin embargo, el minicarro no se actualiza.

¿Qué está mal?

Estamos usando Vue.js 3.

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

0

Su reproducción muestra que tiene un script externo a sus aplicaciones Vue que modifica el cart .

Para que esa modificación sea reactiva, debe crear un cart con Vue.reactive() :

 const cart = Vue.reactive({ orderLines: [], itemsCount: 0 })

manifestación

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