Heim > Web-Frontend > View.js > vue3+vite: So beheben Sie den Fehler bei der Verwendung von require zum dynamischen Importieren von Bildern in src

vue3+vite: So beheben Sie den Fehler bei der Verwendung von require zum dynamischen Importieren von Bildern in src

WBOY
Freigeben: 2023-05-21 15:16:06
nach vorne
4654 Leute haben es durchsucht

vue3+vite: src verwendet „require“, um Bilder sowie Fehlerberichte und Lösungen dynamisch zu importieren.

vue3 + vite importiert dynamisch mehrere Bilder.

vue3 Wenn Sie Typescript-Entwicklung verwenden, tritt beim Importieren von Bildern ein Fehler auf, „require“ ist nicht definiert und kann nicht wie „Verwenden Sie vue2 zum Importieren wie imgUrl: require(’…/assets/test.png’)“ sein, da Typescript „require“ nicht unterstützt. Daher wird Import verwendet. So lösen Sie das Problem: Verwenden Sie „await import(“. ;@/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>
Nach dem Login kopieren

demo2.vue Recyceln Sie den Rückgabewert, um lokale Bilder anzufordern

<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>
Nach dem Login kopieren

Zeichnen Sie die bei der Verwendung von vue3 aufgetretenen Probleme auf. Möglicherweise gibt es andere Möglichkeiten Um das Problem der Bildeinführung zu lösen, geben Sie mir bitte einige Ratschläge ~

Ergänzung: vue3+vite:src verwendet require, um den absoluten Pfad einzuführen, und meldet einen Fehler

Das neueste Projekt ist vue3+vite, wenn require als Referenz verwendet wird Im Bildpfad wird der Fehler „require ist nicht definiert“ gemeldet, was sehr peinlich ist, da Typescript „require“ nicht unterstützt. Daher habe ich imgUrl direkt verwendet: require(’…/assets/test.png’) beim Importieren, Es wird ein Fehler gemeldet. Zum Importieren müssen Sie die Lösung verwenden:

Erste Methode: Verwenden Sieawait 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>
Nach dem Login kopieren

Zweitens: Recyceln Sie den Rückgabewert um lokale Bilder anzufordern

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonvue3+vite: So beheben Sie den Fehler bei der Verwendung von require zum dynamischen Importieren von Bildern in src. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage