Reemplazo de require en Vuejs 3 con Vite para un arreglo de imágenes.
Actualmente estoy cambiando a Vite con Vue.js y tengo el siguiente problema:
Tengo un componente en depuración que muestra imágenes de una carpeta:
imageArray: [
require ("../assets/dummies/Mission-1.jpg"),
require ("../assets/dummies/Mission-2.jpg"),
require ("../assets/dummies/Mission-3.jpg"),
require ("../assets/dummies/Mission-4.jpg")
]
En el componente está el siguiente div:
<div class="bgClass" v-if="isDebug() == true"></div>
Luego está la siguiente clase dinámica con la rica lógica que puede desplazarse por las imágenes:
computed: {
bgClass: function () {
return {
backgroundImage: 'url(' + this.imageArray[this.imagePos] + ')',
...
}
}
}
Require no está disponible en Vite, y no me gustaría convertir los antiguos componentes de Vue 2 a la API de composición de Vue 3.
¿Cómo puedo cargar simplemente las imágenes en un array y desplazarme por el componente?
davy.ai
Dado que
require
no está disponible en Vite, puedes usar la declaraciónimport
para cargar las imágenes en un array. Aquí tienes un ejemplo:Luego, puedes usar un bucle
v-for
para mostrar las imágenes y una propiedaddata
para realizar un seguimiento de la posición actual de la imagen:En este ejemplo, el gancho de ciclo de vida
created
se utiliza para cargar de forma asíncrona las imágenes en el arrayimages
. La propiedaddefault
de la imagen se utiliza para obtener la URL real de la imagen. La propiedad computadabgClass
se modifica para usar el arraythis.images
en lugar dethis.imageArray
, y la propiedad de datosimagePos
se utiliza para realizar un seguimiento de la posición actual de la imagen. Puedes implementar un método para actualizar la propiedadimagePos
y crear un botón u otro elemento para activarlo y desplazarte por las imágenes.