Vue 3 mengimport secara dinamik berdasarkan Props
P粉388945432
P粉388945432 2023-11-16 11:40:01
0
1
661

Saya menggunakan unplugin-icon untuk mencipta komponen ikon, biasanya saya boleh mengimport cth.

//script import IconCopy from '~icons/prime/copy' //template 

Ia berfungsi, tetapi jika kita ingin menggunakan ikon lain, rasanya menyusahkan untuk mengimport satu persatu, jadi saya mencipta komponen dinamik bernama Eunoicon.vue

 

Tetapi apabila saya cuba mengimportnya ke dalam komponen, ia menimbulkan ralatUncaught (in Promise) TypeError: 无法解析模块说明符 '~icons/prime/copy'.Sebarang cadangan untuk pendekatan ini atau mana-mana perpustakaan ikon yang menyediakan pendekatan mudah? Saya telah mencuba vue font Awesome tetapi ia masih tidak semudah yang saya mahukan.

P粉388945432
P粉388945432

membalas semua (1)
P粉396248578

Malangnya, pada masa ini tidak mungkin untuk membuat import secara dinamik. Saya mendapati diri saya mengalami masalah yang sama beberapa bulan lalu. Penyelesaian saya adalah untuk merawat ikon sebagai SVG dan mencipta fail import yang dilampirkan pada projek saya seperti ini:

interface SvgObject { [key: string]: Function; } export function importSvg(icon: string) { const svg = { "sliders-horizontal": () => { return '      '; }, }

Dan buat komponen paparan seperti yang ditunjukkan di bawah yang akan mendapatkan semula ikon yang sepadan dengan nama yang diberikan dengan bantuan prop.

  

Sudah tentu, membuat fail import secara manual akan menjadi rumit, jadi dalam kes saya, saya mencipta skrip python yang membawa laluan ke folder ikon SVG dan memproses setiap ikon untuk mengecilkannya dan mencipta fail import secara automatik. Skrip ini berfungsi dengan ikon dari Perpustakaan Ikon Phosphor. Anda boleh mencari kod untuk skrip dan komponen Vue dalam repositori github:

https://github.com/fchancel/Phosphor-icon-vue-component

Jika anda memutuskan untuk menggunakan ikon Fosfor, jangan teragak-agak untuk mendapat inspirasi daripadanya, ubah suai atau gunakannya

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!