Vue のスロットの使用法と適用シナリオの詳細な分析

Vue のスロットの使用法と適用シナリオの詳細な分析

スロットとは何ですか?

Vue では、子コンポーネント タグの中央に何もラップできないことはわかっています。

しかし、コンポーネントを使用する場合、コンポーネントの外部のタグをカスタマイズしたいことがよくあります。Vue では、スコープ スロットと呼ばれるスロット メカニズムが追加されました。必要なバージョンは 2.1.0 以上です。

スロットは実際にはプレースホルダーです。これはコンポーネント内の HTML テンプレート内の場所を占め、何かを渡すことを可能にします。スロットは、匿名スロット、名前付きスロット、スコープ付きスロットに分けられます。

2.6.0 では、名前付きスロットとスコープ付きスロットの新しい統合構文 (v-slot ディレクティブ) が導入されました。スロットとスロットスコープを置き換えます

匿名スロット

匿名スロット。単一スロットまたはデフォルト スロットとも呼ばれます。名前付きスロットと比較すると、name 属性を設定する必要がなく、非表示の name 属性がデフォルトになります。

父親.vue

子.vue

匿名スロットの場合、name 属性は default に対応し、空白のままにしてデフォルト値を使用することもできます。

使用時に注意すべき別の問題があります。匿名スロットが 2 つ以上ある場合、子タグの内容は各スロットで置き換えられます。

名前付きスロット (vue2.6.0 以降では slot='name' は非推奨)

名前が示すように、スロットには名前が付けられます。定義: または、単純な略語を使用して #header を定義します。使用法: テンプレート タグで囲みます。

父親.vue

子.vue

ここでは、複数の名前付きスロットの使用について説明します。スロットの位置は、使用されているスロットの位置によって決まるのではなく、定義されるときの位置によって置き換えられます。

父親.vue

子.vue

スコープ付きスロット

データを転送するために使用されるスロットです。

スロットでデータを使用する場合は、スコープの問題に注意する必要があります。Vue の公式ドキュメントには、親テンプレートのすべてのコンテンツは親スコープでコンパイルされ、子テンプレートのすべてのコンテンツは子スコープでコンパイルされると記載されています。

子コンポーネントのデータを親のスロットコンテンツで利用できるようにするには、データを要素のプロパティとしてバインドします: v-bind:text="text"

知らせ:

匿名スコープスロットと名前付きスコープスロットの違いは、v-slot:defult="accepted name" (defult (anonymous は省略可能、named の反対は対応する名前を記述することです)) です。

v-solt は分解して受け取ることができます。分解によって受け取るフィールドは、渡されるフィールドと同じである必要があります。たとえば、1 は v-slot="{one}" に対応します。

レンダリング

要約する

これで、Vue のスロットの使用方法と適用シナリオに関するこの記事は終了です。Vue スロットの使用方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue elementuiは、検索バーのパブリックコンポーネントのカプセル化のサンプルコードを実装します。
  • vue element-ui で独自のコンポーネントをカプセル化する方法の詳細な説明
  • 一般的なテーブルコンポーネントの Vue カプセル化の完全な手順記録
  • vue スロットを使用して vue で共通コンポーネントをカプセル化する方法

<<:  MySQLワームレプリケーションの基本知識

>>:  DockerでのinfluxDB分散時系列データベースのインストールと関連操作について簡単に説明します。

推薦する

SQL 面接の質問: 時間差の合計を求める (重複は無視)

ある会社の BI 職の面接を受けたとき、面接で SQL に関する質問がありました。一見すると非常に簡...

データベースSQL文の最適化

最適化する理由:実際のプロジェクトが開始され、データベースが一定期間稼働した後、初期のデータベース設...

Linux に nginx をインストールする方法

Nginx は C 言語で開発されており、Linux で実行することをお勧めします。もちろん、Win...

CSS の複数行テキストがオーバーフローする場合の省略記号の例

複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...

MySQL のデータ削除とデータ テーブル メソッドの例

MySQL でデータやテーブルを削除するのは非常に簡単ですが、削除するとすべてのデータが消えてしまう...

Docker実行コンテナが作成状態にある問題についての簡単な説明

最近の問題としては、次のような現象があります。システムには、docker run コマンドを継続的に...

CSSに基づいてマウス入力の方向を決定する

以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...

CentOS7でFTPサーバーを設定する方法

FTP は主にファイル転送に使用され、Linux では vsftpd で実装されるのが一般的です。F...

Linuxのtimeコマンドの使い方の詳しい説明

1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...

el-table ヘッダーでテキストを折り返す 3 つの方法の詳細な説明

目次問題の説明レンダリング3種類のコード要約する問題の説明通常、表のヘッダーは折り返されませんが、ビ...

Linux オペレーティング システムに Apache サービスをインストールする方法

ダウンロードリンク:動作環境VMware 仮想マシンの CentOS 7.6セキュアCRT Xftp...

HTML タグの表示モード (ブロックレベル タグ、インライン タグ、インライン ブロック タグ) に関する簡単な説明

今日の講義では、HTML におけるタグの表示モードについてお話ししましたが、これはブロックレベルタグ...

MySQL 5.7.10 インストール ドキュメント チュートリアル

1. 依存パッケージをインストールする yum -y インストール gcc-c++ ncurses-...

CentOS6 アップグレード glibc 操作手順

目次背景glibc 2.14をコンパイルするソフトリンクを変更するやっと背景テスト環境には Cent...

ブロックレベル要素、インライン要素、可変要素の概要

ブロック要素p - 段落テキストの事前フォーマットテーブルol - ソートフォームul - 順序なし...