Memaparkan komponen Vue secara dinamik dalam komponen lain
P粉764003519
2023-08-30 20:51:07
<p>Menggunakan<strong>Vue 3.2.41</strong>-@heroicons/vue 2.0.14-inertiajs 1.0-vite 4.0.0</p>
<p>Saya menggunakan ini untuk memanggil komponen Vue: </p>
<p><kod><TimelineItem icon="CalendarDaysIcon" /></code></p>
<p>Komponen kelihatan seperti ini: </p>
<pre class="brush:php;toolbar:false;"><template>
<komponen :is="ikon" <!-- tidak berfungsi -->
<CalendarDaysIcon /> <!-- berfungsi -->
</template>
<persediaan skrip>
import {
CalendarDaysIcon,
} daripada '@heroicons/vue/20/solid'
const props = defineProps(['icon'])
</script></pre>
<p>HTML yang diberikan kelihatan seperti ini:</p>
<pre class="brush:php;toolbar:false;"><calendardaysicon></calendardaysicon> <!-- bukan yang saya mahu -->
<svg> ... </svg> <!-- betul tetapi tidak dinamik
<p>Dalam erti kata lain, apabila saya mahu <code><komponen :is /></code> untuk memaparkan komponen, ia hanya menjadikan beberapa <code><calendardaysicon></code> ; Saya dapat melihat bahawa ia telah menukarnya kepada huruf kecil dan saya tidak tahu bagaimana untuk memaksanya kembali ke PascalCase, saya tidak pasti sama ada itu akan membantu keadaan. </p>
<p>Saya telah mempermudahkan sedikit kod, tetapi versi penuh akan mempunyai senarai 10 ikon berbeza (semua bahagian pakej Heroicons menggunakan nama PascalCase) dan saya mahu dapat memanggilnya dengan mudah daripada komponen utama .</p>
Cuba:
String menggunakan
仅使用包含CalendarDaysIcon
Sebaliknya, dalam komponen utama, luluskan rujukan komponen sebenar seperti ini:
Kemudian, dalam komponen
TimelineItem
, tidak perlu merujuk sebarang ikon:Terima kasih kepada
@Robert Boes
pada pelayan Inertia Discord untuk bimbingan.