Maison > interface Web > js tutoriel > le corps du texte

Comment afficher dynamiquement des images dans Vue.js avec des propriétés calculées et Webpack ?

Barbara Streisand
Libérer: 2024-11-12 21:34:02
original
751 Les gens l'ont consulté

How to Dynamically Display Images in Vue.js with Computed Properties and Webpack?

Affichage d'image dynamique dans Vue.js à l'aide de Webpack

Dans une application Vue.js utilisant Webpack, vous pouvez rencontrer des difficultés lorsque vous tentez de créer dynamiquement afficher des images dont les noms de fichiers sont stockés dans des propriétés calculées. Plus précisément, si ces propriétés dépendent de variables de magasin Vuex remplies de manière asynchrone, vous constaterez peut-être que les chemins d'image ne sont pas résolus correctement.

Considérez le modèle Vue suivant :

<div class="col-lg-2" v-for="pic in pics">
  <img v-bind:src="'../assets/' + pic + '.png'" v-bind:alt="pic">
</div>
Copier après la connexion

Bien que cette approche fonctionne parfaitement lorsqu'un chemin d'image statique est fourni (par exemple, Comment afficher dynamiquement des images dans Vue.js avec des propriétés calculées et Webpack ?), il ne parvient pas à afficher l'image lorsque le chemin est généré dynamiquement à partir d'un chemin calculé. propriété. Des problèmes similaires ont été signalés et résolus dans ce violon.

Pour résoudre ce problème, vous pouvez utiliser le code JavaScript suivant :

getImgUrl(pet) {
  var images = require.context('../assets/', false, /\.png$/)
  return images('./' + pet + ".png")
}
Copier après la connexion

Cette fonction utilise require.context() de webpack pour dynamiquement charger des images à partir d'un répertoire spécifique en fonction du nom de fichier fourni.

Dans le modèle HTML, l'attribut v-bind:src doit être mis à jour pour référencer la fonction getImgUrl() au lieu de générer directement le chemin :

<div class="col-lg-2" v-for="pic in pics">
  <img :src="getImgUrl(pic)" v-bind:alt="pic">
</div>
Copier après la connexion

En implémentant cette solution, vous pouvez afficher dynamiquement des images dans votre application Vue.js avec webpack, même si les noms de fichiers image sont stockés dans des propriétés calculées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal