Rumah > hujung hadapan web > tutorial js > Mengapa Pemuatan Imej Dinamik Gagal dengan Vue.js dan Webpack?

Mengapa Pemuatan Imej Dinamik Gagal dengan Vue.js dan Webpack?

DDD
Lepaskan: 2024-11-18 10:50:02
asal
863 orang telah melayarinya

Why Does Dynamic Image Loading Fail with Vue.js and Webpack?

Isu Pemuatan Imej Dinamik dalam Vue.js dengan Webpack

Apabila membina aplikasi web dengan Vue.js dan Webpack, memaparkan imej dinamik kadangkala boleh menimbulkan cabaran. Satu senario biasa ialah apabila nama fail imej disimpan dalam pembolehubah dan perlu dilampirkan pada laluan asas untuk menjana sumber imej yang lengkap.

Seorang pembangun menghadapi masalah apabila kod berikut, bertujuan untuk memaparkan imej secara dinamik berdasarkan sifat yang dikira, gagal:

<div class="col-lg-2" v-for="pic in pics">
   <img v-bind:src="'../assets/' + pic + '.png'" v-bind:alt="pic">
</div>
Salin selepas log masuk

Menariknya, pendekatan serupa menggunakan laluan imej statik berfungsi seperti yang dijangkakan:

<img src="../assets/dog.png" alt="dog">
Salin selepas log masuk

Teka-teki terletak pada perbezaan antara kedua-dua pendekatan . Menggunakan laluan statik secara langsung mengarahkan Webpack untuk memasukkan imej dalam binaan, memastikan ketersediaannya semasa masa jalan. Walau bagaimanapun, pendekatan dinamik bergantung pada laluan imej yang dijana semasa runtime, yang Webpack tidak dapat jangkakan semasa proses binaan. Akibatnya, imej tidak disertakan dalam berkas, mengakibatkan fail hilang.

Untuk menangani isu ini, pembangun beralih kepada kaedah require.context(), yang menyediakan cara untuk memuatkan modul atau fail secara dinamik dalam konteks tertentu. Dengan menggunakan kod berikut:

getImgUrl(pet) {
    var images = require.context('../assets/', false, /\.png$/)
    return images('./' + pet + ".png")
}
Salin selepas log masuk

dan mengemas kini HTML seperti berikut:

<div class="col-lg-2" v-for="pic in pics">
   <img :src="getImgUrl(pic)" v-bind:alt="pic">
</div>
Salin selepas log masuk

pemaju mencapai kesan yang diingini. require.context() membenarkan mereka memuatkan fail imej secara dinamik berdasarkan nilai sifat gambar dan Webpack menyertakan imej yang diperlukan dalam berkas.

Atas ialah kandungan terperinci Mengapa Pemuatan Imej Dinamik Gagal dengan Vue.js dan Webpack?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan