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

92
Views
VueJS mostrando datos antiguos (imágenes) antes de actualizar

Para una aplicación de carrito de compras con VueJS, tengo una lista de productos paginada. Todos los productos se obtienen cuando el usuario abre la página y luego uso una variable de página para saber qué productos mostrar. Cuando paso de la página 1 a la página 2, los productos se reemplazan por otros nuevos, pero las imágenes tardan en cambiar. En mi computadora toma como 1 segundo y en mi teléfono 2 segundos. Algunos usuarios me dicen que es incluso más largo. El problema es que mientras carga muestra una imagen de otro producto de la página anterior. Entonces, durante unos segundos en una nueva página, hay productos con nombres e imágenes que no se corresponden con ellos. ¿Tienes alguna idea de por qué sucede esto? Si tarda en cargar la nueva imagen, prefiero no tener nada el tiempo que carga en lugar de tener una imagen de la página anterior.

Tengo el mismo problema con vutify v-autocompletar donde cada elemento tiene una imagen.

Descripción general de mi implementación de paginación (no creo que sea el problema porque v-autocompetes tiene el mismo problema):

 <div v-for="(product, i) in productsByIDPaginated" :key="i" > <img v-if="product.imagesNumber > 0" @click.stop="toProductDetailsPage(product)" :src="imageUrl(product)" @error="replaceByDefault" /> <img v-else @click="toProductDetailsPage(product)" src="../assets/unknown2.jpg" /> </div> <script> productsByIDPaginated() { return this.productsByIDFiltred.slice( this.numberProdsByPage * (this.page - 1), this.numberProdsByPage * this.page ); }, </script>
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Sería útil ver cómo se implementan los productos y la paginación.

Asumiría que la imagen anterior no cambia hasta que se recuperan los nuevos productos. Mi mejor suposición para resolver esto, suponiendo que esté recorriendo los productos, sería asegurarse de que las claves se cambien en el momento en que se soliciten nuevos productos.

about 4 years ago · Juan Pablo Isaza Report

0

La razón de tales comportamientos (mostrar las imágenes antiguas en la página siguiente (durante la paginación) hasta que se carguen las nuevas) es la falta de :key="" prop, o pasar a esta prop el index de v-for (como lo hace ).

Debería:

  • pasar una identificación única del elemento iterado si lo tiene ( :key="item.id" ), o
  • use :key="index + pageNum * itemsCountPerPage" , o
  • como solución alternativa, puede usar una URL de imagen como accesorio key .

Entonces, por ejemplo, para el segundo caso, si enumera 10 elementos por página: en la primera página, los elementos tendrán ID (accesorio key ) del 0 al 9, en el siguiente, del 10 al 19.

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!