Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

96
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda