Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

164
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!