首頁 > web前端 > Vue.js > 主體

vue3+vite:src使用require動態匯入圖片報錯怎麼解決

WBOY
發布: 2023-05-21 15:16:06
轉載
4535 人瀏覽過

vue3 vite:src使用require動態導入圖片報錯和解決方法

vue3 vite 動態的導入多張圖片

vue3 如果使用的是typescript開發,就會出現require引入圖片報錯,require is not defined 不能像使用vue2 這樣imgUrl: require(’…/assets/test.png’) 導入,是因為typescript不支持require
所以用import導入,下面介紹如何解決: 使用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>
登入後複製

demo2.vue 循環利用回傳值請求本機圖片

<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>
登入後複製

記錄一下使用vue3遇到的問題,或許還有別的辦法解決圖片引入問題,也請各位指教~

補充:vue3 vite :src 用require引入絕度路徑報錯

最近的專案是vue3 vite,在使用require引用圖片路徑的時候就報錯require is not defined,就很尷尬,因為typescript不支持require所以之前直接用imgUrl: require(’…/assets /test.png’) 導入就會報錯需要用import導入,記錄一下解決方法:

第一種:使用await 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>
登入後複製

第二種:循環利用返回值請求本地圖片

r​​rreee

以上是vue3+vite:src使用require動態匯入圖片報錯怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!