ホームページ >ウェブフロントエンド >Vue.js >スロットを使用して Vue でコンテンツを配布する方法
Vue は、ページ上のコンポーネントを管理および整理する便利な方法を提供する、人気のあるフロントエンド フレームワークです。その中でも、スロットは Vue の非常に実用的な機能であり、コンポーネント内のコンテンツを動的に配布するのに役立ちます。この記事では、Vue でスロットを使用してコンテンツを配布する方法と、追加の使用方法と注意事項を紹介します。
Vue では、スロットは、子コンポーネントがコンテンツを直接挿入できるように、親コンポーネント テンプレート内の子コンポーネントにスロットを提供するために使用されます。親コンポーネントのテンプレートに追加します。スロットを使用する場合は、通常、親コンポーネント テンプレートにスロット タグを追加し、子コンポーネントに名前付きスロットとデフォルト スロットを追加します。
デフォルト スロットは名前のないスロットで、デフォルトのコンテンツをサブコンポーネントに挿入するために使用できます。デフォルトのスロットは、特別なプレースホルダー
名前付きスロットは name 属性によって定義され、コンテンツが親コンポーネント テンプレートに挿入される名前付きスロットを指定できます。例:
8abb24ab0de6ed5f68dcb6839b7bbcad
f83d88e8f85ba06872eba1bcadd9eb26
1b54d73e74b22f631033be1d0207faea
<h3>这是一个标题</h3>
< ; /template>
f65a1353a6587d0a0b240ab3c9b24398
<p>这是一个底部</p>
21c97d3a051048b8e55e3c8f199a54b2
e388a4556c0f65e1904146cc1a846beeこれは一部のコンテンツです94b3e26ee717c64999d7867364b1b4a3
9946765f91ae4543ce3e68c65958fe9e
f2d36ed5daa8577a94d0e29ec51b9c9e
d477f9ce7bf77f53fbcf36bec1b69b7a
dc6dce4a544fdca2df29d5ac0ea9906b
<slot name="header"></slot> <!-- 默认插槽 --> <slot></slot> <slot name="footer"></slot>
16b28748ea4df4d9c2150843fecfba68
e4c6f86f35e644cc6377923835cf3ded
この例では、親コンポーネントは名前付きスロットを使用してテンプレート内のヘッダーとフッターの位置を指定し、またデフォルトのスロットを使用して p 要素の位置を指定します。
Vue では、スロットにも一般的な使用法がいくつかあり、これによりコードがより簡潔で柔軟かつ強力になります。
2.1 排他的なデフォルト スロット
場合によっては、親コンポーネントにコンテンツを配布するのではなく、子コンポーネントにデフォルト スロットを占有させたい場合があります。この場合、 v-slot:default ディレクティブを使用して、サブコンポーネントのテンプレートとしてデフォルトのスロットを使用するように Vue に指示できます。例:
8abb24ab0de6ed5f68dcb6839b7bbcad
f83d88e8f85ba06872eba1bcadd9eb26
6528afea30cac280f6d4e34474862560446adb68decd1b5209d9648989fcb285
b29dc7a1eda2e8a13260b39aef1260e2
d477f9ce7bf77f53fbcf36bec1b69b7a
e388a4556c0f65e1904146cc1a846beeこれは親への挿入ですコンポーネント「エフェクト」の内容。
f83d88e8f85ba06872eba1bcadd9eb26
91cdef52489e39baa15fb6058fd1c7e8258a99cd8e43b8a54428793c021c8849 e388a4556c0f65e1904146cc1a846bee{{ slotProps.msg }}94b3e26ee717c64999d7867364b1b4a3
13b01f794c566c82cfbadbb090e5f686
b5dbc54446b59b4f95a4ce29e0ee33f3
7ab6b075cc6c7bcbe15d0b9685c6f1da
9cd7f6347bd64a77c4c62917c61d29cf
<p v-for="item in items" :key="item">{{ item }} - 处理后</p>
この例では、名前付きスロット名を使用し、次を使用します。親コンポーネントの v-slot:name ディレクティブを使用して、子コンポーネントによって渡されたデータ slotProps を受け取ります。子コンポーネントでは、items 配列をループし、スコープ スロットを使用してデータを親コンポーネントに渡します。親コンポーネントでは、{{ slotProps.msg }} を使用して、渡されたデータにアクセスします。
注意事項
概要
以上がスロットを使用して Vue でコンテンツを配布する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。