Vue3 スロットの使用状況の概要

Vue3 スロットの使用状況の概要

1. Vスロットの紹介

v-slot templateまたはコンポーネントでのみ使用できます。それ以外の場合はエラーが報告されます。

v-slotも命令の一つです。

使用例:

//親コンポーネントコード <child-com> 
 <テンプレート v-slot:nameSlot> 
  スロットコンテンツ</template> 
</child-com> 
 
//コンポーネント テンプレート <slot name="nameSlot"></slot> 
v-slot の構文は slot と slot-scope スコープ スロットの機能を簡素化し、より強力で効率的なものにします。

2. 匿名スロット

コンポーネントにスロットが 1 つしかない場合は、 slot name属性を設定せずに、v-slot をパラメータなしで使用できます。ただし、 v-slotは、name 属性が設定されていないスロットに暗黙の「デフォルト」も設定されます。

匿名スロットの使用:

//コンポーネント呼び出し <child-com> 
 <テンプレート v-スロット> 
  スロットコンテンツ</template> 
</child-com> 
 
//コンポーネント テンプレート <slot ></slot> 


v-slotにはパラメータが設定されていませんが、削除することはできません。削除すると、スロットのコンテンツを正常にレンダリングできなくなります。

3. 名前付きスロット

コンポーネント内に複数のスロットがある場合、v-slot 属性値が設定されていないと、デフォルトでは name 属性値のない要素がスロット コンポーネントに挿入されます。指定された位置に該当する要素を配置するには、 v-slotname属性を使用して内容を一致させる必要があります。

名前付きスロットは以下を使用します:

//親コンポーネント <child-com> 
 <テンプレート v-slot:header> 
  ヘッダー</テンプレート> 
 <テンプレート v-slot:body> 
  コンテンツ</template> 
 <テンプレート v-slot:footer> 
  足 
</child-com> 
     
//サブコンポーネント <div> 
 <スロット名="ヘッダー"></スロット> 
 <スロット名="本文"></スロット> 
 <スロット名="フッター"></スロット> 
</div> 


名前付きスロットの略語:

v-bindv-onディレクティブと同様に、 v-slotも略語があります。 v-slot: # に省略できます。

前述のように、v-slot:footer は #footer に短縮できます。

上記の親コンポーネント コードは次のように簡略化できます。

<child-com> 
 <テンプレート #ヘッダー> 
  ヘッダー</テンプレート> 
 <テンプレート #本文> 
  コンテンツ</template> 
 <テンプレート #フッター> 
  足 
</child-com> 


注:他のコマンドと同様に、省略形はパラメータがある場合にのみ許可され、それ以外の場合は無効です。

4. スコープ付きスロット

子コンポーネントでのみ使用可能なデータへのアクセス権をスロット コンテンツに付与すると便利な場合があります。コンポーネントを使用してアイテムの配列をレンダリングし、各アイテムのレンダリング方法をカスタマイズできるようにすることが一般的なケースです。

子コンポーネントのプロパティをスロット コンテンツで使用できるようにするには、 slotにプロパティをバインドする必要があります。次に、v-slot でスロットprops名を受け取って定義します。

使用例:

// 
<child-com> 
 <テンプレート v-slot:header="slotProps"> 
  スロットコンテンツ --{{ slotProps.item }} シリアル番号 --{{ slotProps.index }} 
 </テンプレート> 
</child-com> 
     
//サブコンポーネントコード <テンプレート> 
 <div v-for="(item, index) in arr" :key="index"> 
  <スロット:item="アイテム" name="ヘッダー":index="インデックス"></スロット> 
 </div> 
</テンプレート> 
<スクリプトの設定> 
 定数arr = ['1111', '2222', '3333'] 
</スクリプト> 


5. 動的なスロット名

v-slotディレクティブ パラメータを動的に設定して、動的なスロット名を定義することもできます。

のように:

<child-com> 
 <テンプレートvスロット:[dd()]> 
  動的スロット名</template> 
</child-com> 
 
<スクリプトの設定> 
定数dd = () => { 
  'hre'を返す 
} 


ここでは関数が使用されていますが、変数を直接使用することもできます。

Vue3 スロットの使い方のまとめはこれで終わりです。Vue3 スロットの使い方に関するより詳しい内容は、123WORDPRESS.COM の過去記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue のデフォルト スロット、名前付きスロット、スコープ スロットの定義と使用方法
  • Vue2のスロットの基本的な使用仕様
  • Vue でスロットを使用する方法についての簡単な説明
  • Vueスロットの使用の詳細
  • Vue のスロットの使用法と適用シナリオの詳細な分析
  • vue+element-ui テーブルカプセル化タグラベルスロットの使用
  • Vue でのスロットの使用の概要

<<:  フロントエンドの面接の質問の最も包括的なコレクション

>>:  実行中の時計を実装するための純粋な CSS3 コード

推薦する

17の広告効果測定の解釈

1. 広告の 85% は未読です<br />解釈: 成功する広告の 15% にどうやって...

MySQLデータベースで列を追加、削除、変更する方法

この記事では、例を使用して、MySQL データベースの列を追加、削除、および変更する方法について説明...

反応ルーティングでパラメータを渡すいくつかの方法についての簡単な説明

最初のパラメータ渡し方法は、動的ルーティングパラメータ渡しです。リンクのパス属性を設定することで、ル...

ネイティブJSを使用した遅延読み込みlazyLoadの3つの方法の概要

目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...

IE で ClearType をオンにした後の透明フォントの問題の解決方法

IE で ClearType をオンにした後に発生する透明フォントの問題を解決するには、透明要素に背...

Tomcat が https アクセスをサポートするための手順の説明

tomcat を https アクセスに対応させる方法ステップ: (1)キーストアファイルを生成する...

JS 継承の詳細

目次序文準備する要約する継承方法プロトタイプ継承プロトタイプチェーン継承コンストラクタの借用(クラス...

HTMLノードの追加と削除の簡単な例

<br />HTMLノードの追加と削除の簡単な例<input type="...

CSS の inline-block の最小幅値の詳細な説明

序文最近、私は夜に時間を取って「CSS World」という本を読んでいます。この本は非常に興味深く、...

mysql 5.6.21 のインストールと設定の詳細な手順

1. 概要MySQL バージョン: 5.6.21ダウンロードアドレス: https://dev.my...

React Routerの歴史について簡単に説明します

React Router を理解したいなら、まず歴史を理解する必要があります。より具体的には、Rea...

よく使われる HTML タグとその特徴の完全なリスト

まず、HTML タグのいくつかの特性を知っておく必要があります。 1. 「<keyword&g...

MySQL truncate table ステートメントの使用

Truncate table ステートメントは、テーブル内のすべてのデータを削除/切り捨てるために使...

HTML ヘッドタグの詳細な紹介

HTML のヘッド部分には、ブラウザによる Web ページのレンダリングや SEO などに関連するタ...

MySql 5.6.35 winx64 インストール詳細チュートリアル

注: データベースのバージョンの問題により、プロジェクトの起動時にエラーは発生しませんでしたが、デー...