Rumah  >  Artikel  >  hujung hadapan web  >  Bolehkah Kami Mengimport Modul ES6 dengan Nama Pembolehubah Dinamik?

Bolehkah Kami Mengimport Modul ES6 dengan Nama Pembolehubah Dinamik?

Barbara Streisand
Barbara Streisandasal
2024-10-27 07:35:29734semak imbas

 Can We Import ES6 Modules with Dynamic Variable Names?

Menyesuaikan Import Modul ES6 dengan Nama Pembolehubah Boleh Ubah

Pengenalan:

Dalam ES6, penyata import membenarkan kami mengimport modul dan menyediakan eksport lalai dengan nama tertentu. Walau bagaimanapun, bolehkah kita menetapkan nama pembolehubah kepada modul yang diimport berdasarkan nilai masa jalan?

Soalan:

Adakah mungkin untuk mengimport modul dengan nama pembolehubah semasa masa jalan menggunakan Pernyataan import ES6, serupa dengan corak ini:

<code class="javascript">import something from './utils/' + variableName;</code>

Jawapan:

Malangnya, sintaks ini tidak sah untuk pernyataan import ES6. Import dan eksport dalam ES6 boleh dianalisis secara statik dan tidak boleh bergantung pada maklumat masa jalan.

Pendekatan Alternatif:

Untuk mencapai gelagat import dinamik, anda boleh menggunakan API pemuat (polyfill ), yang menawarkan kaedah yang dipanggil 'System.import'. Kaedah ini mengambil penentu modul sebagai hujah dan mengembalikan janji yang diselesaikan kepada modul yang diimport:

<code class="javascript">System.import('./utils/' + variableName).then(function(m) {
  console.log(m);
});</code>

Perhatikan bahawa keserasian dan sokongan untuk API pemuat berbeza-beza merentas platform dan penyemak imbas yang berbeza.

Atas ialah kandungan terperinci Bolehkah Kami Mengimport Modul ES6 dengan Nama Pembolehubah Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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