別のコンポーネント内で Vue コンポーネントを動的にレンダリングする
P粉764003519
P粉764003519 2023-08-30 20:51:07
0
2
536
<p>使用<strong>Vue 3.2.41</strong>-@heroicons/vue 2.0.14-inertiajs 1.0-vite 4.0.0</p> <p>これを使用して Vue コンポーネントを呼び出します: </p> <p><code><TimelineItem icon="CalendarDaysIcon" /></code></p> <p>コンポーネントは次のようになります: </p> <pre class="brush:php;toolbar:false;"><テンプレート> <コンポーネント :is="icon" /> <!-- 機能しません --> <CalendarDaysIcon /> <!-- 動作します --> </テンプレート> <スクリプト設定> 輸入 { カレンダー日アイコン、 「@heroicons/vue/20/solid」から const props =defineProps(['icon']) </script></pre> <p>レンダリングされた HTML は次のようになります:</p> <pre class="brush:php;toolbar:false;"><calendardaysicon></calendardaysicon> <!-- 私が望むものではありません --> <svg> ... </svg> <!-- 正しいですが動的ではありません --></pre> <p>言い換えると、<code><component :is /></code> でコンポーネントをレンダリングしたい場合、空の <code><calendardaysicon></code> をレンダリングするだけです。マーク。小文字に変更されているのはわかりますが、PascalCase に強制的に戻す方法がわかりません。それが状況を解決するかどうかもわかりません。 </p> <p>コードを少し簡略化しましたが、完全バージョンには 10 個の異なるアイコン (PascalCase 名を使用した Heroicons パッケージのすべての部分) のリストがあり、メイン コンポーネントから簡単に呼び出せるようにしたいと考えています。 .</p>
P粉764003519
P粉764003519

全員に返信(2)
P粉697408921

###試す:###### #########

いいねを押す +0
P粉107772015

使用 CalendarDaysIcon

を含む文字列のみを使用してください

代わりに、メインコンポーネントで、次のように実際のコンポーネント参照を渡します。

リーリー

したがって、TimelineItem コンポーネントでは、アイコンを参照する必要はありません。

リーリー

Inertia Discord サーバーの @Robert Boes の指導に感謝します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート