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 表達式能用到的地方。
我想原理應該就是我紅色標的吧,require可以進行賦值操作。