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 コード

推薦する

MySQL スロークエリログの有効化と設定

導入MySQL スロー クエリ ログは、問題のある SQL ステートメントのトラブルシューティングや...

MySQL の最適化: InnoDB の最適化

勉強の計画は簡単に中断され、継続するのが困難です。先日、社内で事業の方向性を調整するための会議があり...

Vue デフォルトスロットの理解とサンプルコード

目次スロットとは何かデフォルトスロットの理解コードスニペット要約するスロットとは何かスロットは、親コ...

Nginx転送マッチングルールの実装

1. 正規表現マッチング大文字と小文字を区別するマッチングの場合 ~ ~*は大文字と小文字を区別しな...

IDEA 構成の Tomcat 起動エラーの問題を解決する

異なるサーブレット パスを構成するときに、次の 2 つのエラーが発生しました。 java.lang....

浮遊要素によって引き起こされる問題と解決策の詳細な説明

1. 問題複数のフローティング要素は親要素の幅を拡張できず、親要素の高さが 0 になる可能性がありま...

MySQL 8.0.12 解凍版インストールチュートリアル個人テスト!

Mysql8.0.12 解凍版のインストール方法をテストしましたので、ご参考までに1. ダウンロー...

JS 開発効率を上げる4つの超実践的なヒント

目次1. 短絡判定2. オプション連鎖演算子 (?) 3. ヌル合体演算子 (??) 4. 終了関数...

JSはクリックドロップ効果を実装します

jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...

MySQLの累積集計原理と使用例の分析

この記事では、例を使用して、MySQL 累積集計の原理と使用方法を説明します。ご参考までに、詳細は以...

WeChatミニプログラムの開発をスピードアップするためのヒント

1. app.jsonを使用してページを作成する私たちの通常の開発習慣によれば、新しいページを作成す...

Nginx プロキシ axios リクエストと注意事項

序文最近、小さなデモを作成しました。大規模な工場のオンライン データを使用したため、インターフェイス...

親要素に対する CSS 子要素の固定配置ソリューションの詳細な説明

基本概念絶対配置: 絶対配置に設定された要素ボックスはドキュメント フローから完全に削除され、その包...

Vueはタブルーティング切り替えコンポーネントのメソッド例を実装します

序文この記事では、vue に付属している vue-router.js ルーティングを使用してページン...

Linux に nodejs 環境とパス構成をインストールするための詳細な手順

Linux に Node.js をインストールする方法は 2 つあります。1 つは簡単で、解凍して使...