Yukarıdakiler için yayan olay ve v-model cevaplarına katılıyorum. Ancak, bu, google tarafından döndürülen ilk makalelerden biri gibi göründüğü için, çoklu form öğelerine sahip bileşenler hakkında bulduğum şeyleri ana babalarına geri göndermek isteyenleri göndereceğimi düşündüm.
Sorunun tek bir girişi belirttiğini biliyorum, ancak bu en yakın eşleşme gibi görünüyordu ve insanlara benzer vue bileşenleri ile biraz zaman kazandırabilir. Ayrıca, henüz hiç kimse .sync
değiştiriciden bahsetmedi .
Bildiğim kadarıyla, v-model
çözüm yalnızca ebeveynlerine dönen bir girdiye uygundur. Onu aramak için biraz zaman aldım, ancak Vue (2.3.0) dokümantasyonu, bileşene gönderilen birden fazla nesnenin ana öğeye nasıl senkronize edileceğini gösteriyor (elbette emit aracılığıyla).
Uygun şekilde .sync
değiştirici olarak adlandırılır .
İşte budur dokümantasyon diyor ki:
Bazı durumlarda, bir destek için "iki yönlü bağlama" ihtiyacımız olabilir. Ne yazık ki, gerçek iki yönlü bağlama bakım sorunları yaratabilir, çünkü alt bileşenler, bu mutasyonun kaynağı hem ebeveynde hem de çocukta açık olmadan ebeveyni mutasyona uğratabilir.
Bu nedenle, bunun yerine, düzenindeki olayları yayınlamanızı öneririz
update:myPropName
. Örneğin, bir title
destek içeren varsayımsal bir bileşende,
yeni bir değer atama niyetini şu şekilde iletebiliriz:
this.$emit('update:title', newTitle)
Daha sonra ebeveyn, isterse bu olayı dinleyebilir ve yerel bir veri özelliğini güncelleyebilir. Örneğin:
<text-document
v-bind:title="doc.title"
v-on:update:title="doc.title = $event"
></text-document>
Kolaylık sağlamak için, .sync değiştiricisiyle bu kalıp için bir kısaltma sunuyoruz:
<text-document v-bind:title.sync="doc.title"></text-document>
Ayrıca, bir nesne üzerinden göndererek bir seferde birden çok öğeyi senkronize edebilirsiniz. Belgelere buradan göz atın