v-for循環(huán)中使用require/import關(guān)鍵字引入本地圖片的幾種方式
問題描述
我們做項(xiàng)目中,常常需要把圖片呈現(xiàn)到頁面上,一般來說有以下幾種方式
方式一(后端返回圖片URL)
這種方式就是后端返回圖片的url地址,我們直接img標(biāo)簽的src屬性綁定imgUrl即可。如下代碼:
<div class="item" v-for="(item, index) in apiArr" :key="index"> <!-- apiArr是后端返回的數(shù)據(jù),其中的每一項(xiàng)中都有一個(gè)imgUrl屬性,存儲的是圖片的url地址 --> <img :src="item.imgUrl" alt=""> </div>
方式二(前端使用require)
第二種方式,把圖片文件存儲到前端里,后端只返回圖片的名字(或不返回圖片數(shù)據(jù)),代碼舉例如下:
代碼附上
<template> <div class="wrap"> <div class="item" v-for="(item, index) in apiArr" :key="index"> <div class="imgWrap"> <!-- require引入圖片文件模塊 --> <img :src="require(`@/assets/img/${item.imgTitle}.png`)" alt="" /> <!-- 最后就變成這樣的了就能正常顯示了 <img src="@/assets/img/first.png" alt=""> --> </div> <div class="infoWrap"> <div><span class="bloder">名次:</span> {{ item.title }}</div> <div><span class="bloder">得分:</span> {{ item.score }}</div> </div> </div> </div> </template> <script> export default { data() { return { apiArr: [], }; }, mounted() { // 假設(shè)apiArr是我們發(fā)請求后端返回的數(shù)據(jù),里面的imgTitle屬性存儲的是圖片的名字 // 通過require關(guān)鍵字引入,會自動到指定路徑下的文件中尋找對應(yīng)的圖片文件加載出來 this.apiArr = [ { title: "冠軍", score: "98.8", imgTitle: "first", }, { title: "亞軍", score: "97.9", imgTitle: "second", }, { title: "季軍", score: "96.2", imgTitle: "third", }, ]; }, }; </script>
效果圖如下
項(xiàng)目文件結(jié)構(gòu)圖
方式三(前端使用import)
代碼附上
<template> <div class="wrap"> <div class="item" v-for="(item, index) in apiArr" :key="index"> <div class="imgWrap"> <img :src="item.imgTitle" alt="" /> </div> <div class="infoWrap"> <div><span class="bloder">名次:</span> {{ item.title }}</div> <div><span class="bloder">得分:</span> {{ item.score }}</div> </div> </div> </div> </template> <script> // import 引入圖片 import first from "@/assets/img/first.png"; import second from "@/assets/img/second.png"; import third from '@/assets/img/third.png' export default { data() { return { apiArr: [ { title: "冠軍", score: "98.8", imgTitle: first, // 使用引入的圖片 }, { title: "亞軍", score: "97.9", imgTitle: second, // 使用引入的圖片 }, { title: "季軍", score: "96.2", imgTitle: third, // 使用引入的圖片 }, ], }; }, }; </script>
效果圖和項(xiàng)目文件結(jié)構(gòu)圖同上,這里不贅述
總結(jié)
ES6中import方式引入,和commonjs中require方式引入圖片都可以,不過我個(gè)人更加推薦使用require方式,因?yàn)槁詾殪`活點(diǎn)
到此這篇關(guān)于v-for循環(huán)中使用require/import關(guān)鍵字引入本地圖片的文章就介紹到這了,更多相關(guān)v-for引入本地圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ES6 Proxy實(shí)現(xiàn)Vue的變化檢測問題
Vue3.0將采用ES6 Proxy的形式重新實(shí)現(xiàn)Vue的變化檢測,在官方還沒給出新方法之前,我們先實(shí)現(xiàn)一個(gè)基于Proxy的變化檢測。感興趣的朋友跟隨小編一起看看吧2019-06-06vue學(xué)習(xí)筆記之slot插槽用法實(shí)例分析
這篇文章主要介紹了vue學(xué)習(xí)筆記之slot插槽用法,結(jié)合實(shí)例形式對比分析了vue使用slot插槽的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2020-02-02vue使用自定義指令實(shí)現(xiàn)一鍵復(fù)制功能
在Vue中,通過自定義指令v-copy和document.execCommand方法,可以實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制內(nèi)容到剪貼板的功能,適用于處理長文本或多行文本的復(fù)制需求,而readonly屬性可避免內(nèi)容被修改和移動設(shè)備上的虛擬鍵盤干擾,感興趣的朋友一起看看吧2024-09-09vue2更改data里的變量不生效時(shí),深層更改data里的變量問題
這篇文章主要介紹了vue2更改data里的變量不生效時(shí),深層更改data里的變量問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03vue-cli創(chuàng)建的項(xiàng)目,配置多頁面的實(shí)現(xiàn)方法
下面小編就為大家分享一篇vue-cli創(chuàng)建的項(xiàng)目,配置多頁面的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03elementUI Vue 單個(gè)按鈕顯示和隱藏的變換功能(兩種方法)
小編最近遇到這樣的需求,當(dāng)點(diǎn)擊一個(gè)按鈕可以變換里面字的內(nèi)容,剛開始還真是一頭霧水,不知所措。仔細(xì)想想屢屢思緒,很容易的解決了。接下來通過本文給大家介紹elementUI Vue 單個(gè)按鈕顯示和隱藏的變換功能,需要的朋友可以參考下2018-09-09vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法
這篇文章主要介紹了vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09vue運(yùn)行項(xiàng)目時(shí)network顯示unavailable的問題及解決
這篇文章主要介紹了vue運(yùn)行項(xiàng)目時(shí)network顯示unavailable的問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09