Maison > interface Web > Voir.js > vue3+vite : Comment résoudre l'erreur lors de l'utilisation de require pour importer dynamiquement des images dans src

vue3+vite : Comment résoudre l'erreur lors de l'utilisation de require pour importer dynamiquement des images dans src

WBOY
Libérer: 2023-05-21 15:16:06
avant
4670 Les gens l'ont consulté

vue3+vite : src utilise require pour importer dynamiquement des images, des rapports d'erreurs et des solutions

vue3 + vite importe dynamiquement plusieurs images

vue3 Si vous utilisez le développement dactylographié, il y aura une erreur lorsque require importe des images, require n'est pas défini et ne peut pas être comme Utilisez vue2 pour importer comme imgUrl : require(’…/assets/test.png’) car typescript ne prend pas en charge require
, donc import est utilisé Voici comment le résoudre : Utilisez wait import(&rsquo. ;@/assets/img/ 22.png’);

demo1.vue

<template>
    <img :src="imgUrl" alt="">
</template>

<script>
    import {ref, onMounted} from "vue";
    export default {
        name: "imgPage",
        setup(){
            onMounted(()=>{
                handleImgSrc();
            })
            const imgUrl = ref(&#39;&#39;);
            const handleImgSrc = async()=>{
                let m = await import(&#39;@/assets/img/22.png&#39;);
                imgUrl.value = m.default;
            };
            return{
                imgUrl
            }
        }
    }
</script>
Copier après la connexion

demo2.vue Recyclez la valeur de retour pour demander des images locales

<template>
    <img  v-for="item in imgList" :src="getAssetsImages(item.url)" alt="">
</template>

<script>
    import {ref, reactive, onMounted} from "vue";
    export default {
        name: "imgPage",
        setup(){
        
       		const imgList = reactive([
				{url: &#39;a.png&#39;},{url: &#39;b.png&#39;},{url: &#39;c.png&#39;}
			])
             const getAssetsImages =(name)=> {
		      return new URL(`/src/assets/pic/${name}`, import.meta.url).href; //本地文件路径
		 	 }

            return{
            	imgList ,
                getAssetsImages 
            }
        }
    }
</script>
Copier après la connexion

Enregistrez les problèmes rencontrés lors de l'utilisation de vue3, il existe peut-être d'autres moyens pour résoudre le problème de l'introduction de l'image, et veuillez me donner quelques conseils~

Supplémentaire : vue3+vite : src utilise require pour introduire le chemin absolu et signale une erreur

Le dernier projet est vue3+vite lors de l'utilisation de require pour référencer. le chemin de l'image, l'erreur "require n'est pas défini" est signalée, ce qui est très gênant, car Typescript ne supporte pas require, j'ai donc utilisé directement imgUrl : require(’…/assets/test.png’) lors de l'import, une erreur sera signalée. Vous devez utiliser import pour importer. Enregistrez la solution :

Première méthode : utilisez wait import(’ @/assets/img/22.png’);

<template>
    <img :src="imgUrl" alt="">
</template>
 
<script>
    import {ref, onMounted} from "vue";
    export default {
        name: "imgPage",
        setup(){
            onMounted(()=>{
                handleImgSrc();
            })
            const imgUrl = ref(&#39;&#39;);
            const handleImgSrc = async()=>{
                let m = await import(&#39;@/assets/img/22.png&#39;);
                imgUrl.value = m.default;
            };
            return{
                imgUrl
            }
        }
    }
</script>
Copier après la connexion

Deuxième : recyclez la valeur de retour. pour demander des images locales

<template>
    <img  v-for="item in imgList" :src="getAssetsImages(item.url)" alt="">
</template>
 
<script>
    import {ref, reactive, onMounted} from "vue";
    export default {
        name: "imgPage",
        setup(){
        
               const imgList = reactive([
                {url: &#39;a.png&#39;},{url: &#39;b.png&#39;},{url: &#39;c.png&#39;}
            ])
             const getAssetsImages =(name)=> {
              return new URL(`/src/assets/pic/${name}`, import.meta.url).href; //本地文件路径
              }
 
            return{
                imgList ,
                getAssetsImages 
            }
        }
    }
</script>
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal