Blog

Slot Vuejs

> Sebelum mulai membaca halaman ini, kami berasumsi bahwa Anda telah membaca Dasar-Dasar Komponen. Baca halaman itu terlebih dahulu bila Anda belum mengerti tentang komponen.

> Di versi 2.6.0, kami memperkenalkan sintaks baru (direktif v-slot) untuk nama dan slot scope. Sintaks tersebut menggantikan slot dan atribut slot-scope, yang sekarang tidak digunakan lagi, tapi masih belum dihapus dan masih didokumentasikan di sini. Alasan kami untuk memperkenalkan sintaks baru dapat dilihat di RFC.

Konten Slot
Vue mengimplementasikan API distribusi konten yang terinspirasi dari Draf Spesifikasi Komponen Web, dan elemen dapat digunakan sebagai outlet distribusi untuk konten kita.

Ini memungkinkan Anda untuk membuat komponen seperti ini:

Profil Anda
navigation-link>

Kemudian di templat , Anda mungkin memiliki templat seperti ini:


slot>
a>

Ketika komponen di-render, akan menggantinya dengan “Profil Anda”. Elemen slot dapat berisi kode templat apa saja, termasuk HTML:

span>
Profil Anda
navigation-link>

Atau bahkan dapat berisi komponen lain:

font-awesome-icon>
Profil Anda
navigation-link>

Jika templat tidak berisi elemen , konten apapun yang kita sediakan di dalam komponen akan di buang.

Kompilasi Scope
Saat Anda ingin menggunakan data di dalam slot, seperti ini:

Masuk sebagai {{ user.name }}
navigation-link>

Slot dapat mengakses properti instance yang sama (scope yang sama). Slot tidak dapat mengakses ke scope . Misalnya, Anda mencoba untuk mengakses data url dari scope , itu tidak akan bisa:

Klik di sini dan Anda akan diarahkan ke: {{ url }}
navigation-link>

Ingat, bahwa aturannya:

> Semua yang ada di templat induk, akan dikompilasi di dalam scope induk; semua yang ada di templat anak, akan dikompilasi di dalam scope anak.

Konten Fallback
Ada beberapa kasus yang bermanfaat untuk menentukan konten slot fallback (slot default), yang hanya akan di-render ketika tidak ada konten yang tersedia. Misalnya, di dalam komponen :