Le répertoire assets peut être utilisé pour stocker:
- Des images
- Des SVG
- Ou tout autre contenu statique que l'on souhaite importer au sein d'un composant
# Include un asset au sein d'un composant
Imaginons que l'on dispose d'une image appelée hero.png au sein du répertoire assets/
La solution la plus simple pour afficher l'image au sein du composant est d'utiliser son chemin relatif en tant que source:
<template>
<div id="hero">
<img src="../assets/hero.png" alt="A demo image" />
</div>
</template>
Cependant, celà peut poser des problèmes de performance lors de la génération du site en production.
Note: It may seem completely useless to care about that now, but code splitting can reduce bundle size up to 40%, and thus reduce page loading time.
Afin d'éviter de tels problèmes, il est préférable d'importer les images:
<template>
<div id="hero">
<!--
Specify src attribute using Vue bind syntax.
In this case we're using a shortcut equal to v-bind:src="image" which means
that src attribute will be equal to $this.data.image
Where $this is a reference to the component itself
-->
<img :src="image" />
</div>
</template>
<script>
// In this case it is necessary to import the image as a module
import image from "../assets/hero.jpg";
// And then specify the data function which returns the image
export default {
data() {
return {
image,
};
},
};
</script>
Cette syntaxe n'est pas bien plus longue et permet d'éviter des erreurs lors du build en production.