vue中img動態綁定src使用別名圖片顯示不出


 src動態綁定圖片路徑

 

 

 沒有將別名替換出來,圖片自然也不會顯示

 

 

 然而,在直接在template的img中寫的src可以正常顯示

 

js中圖片用require引入,可以正常顯示圖片

 

原理

當時想不通,img 的src 綁定的是變量,它和defaultImg 不應該是一樣嗎?打開瀏覽器控制台,看到如下內容,img 的src 已經是一個字符串,它不是我們想要的變量了。

我想這里可能是它對item.EnName進行了一次解析變成了字符串,就完事了,綁定變量,就是解析一次。而對於defalutImg 來說,它本來就是變量,無法再進行分割解析,所以它會去data 里面去找,如果找不到,才報錯。

  那么我們現在要做的就是把item.EnName 變成圖片的地址,這樣進行一次解析的時候,直接去讀取圖片。要怎么做到呢?當時 我也不是很清楚,就百度了一下,有人提到了require 方法, require 一個圖片路徑,我想require 什么,以前沒有聽說過require 這個關鍵字啊。想了一段時間,突然就明白了,require 是一個commonJs 規范的關鍵字,當我們在寫node 代碼的時候,都是有require 去讀取資源的。在前端js 中,一直使用import,直接忘記了,不知道怎么用了。webpack 把img 當做一種資源,所以使用時要先引進。引進方式有兩種,一種是import , 一種是require, 因為webpack 同時支持ES6 module 和 commonJs 規范.  import 是個語句,只能在js 代碼頂部使用, 而require 不一樣,它是一個表達式,可以進行賦值操作。我們試一下,用require 引入圖片是怎么樣的效果,在 script 標簽時,寫下

var img = require('./img/lotus.jpg');
console.log(img);

  刷新瀏覽器,在控制台上可以看到如下輸出

  正好是圖片的路徑,也正是我們想要的內容,剛才也說了,require是一個表達式,它可以用到任何js 表達式能用到的地方。

來自vue的 v-for 循環中圖片加載路徑問題 - SamWeb - 博客園 (cnblogs.com)

 我想原理應該就是我紅色標的吧,require可以進行賦值操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM