Я погоджуюся з відповіддю на подію та v-модель для тих, хто вище. Однак я подумав, що опублікую інформацію про компоненти з декількома елементами форми, які хочуть випромінювати до батьків, оскільки це, здається, одна з перших статей, повернених Google.
Я знаю, що питання вказує на один вхід, але це, здавалося, найбільше відповідає і, можливо, заощадить людей деякий час із подібними компонентами vue. Крім того, ніхто ще не згадав про .sync
модифікатор.
Наскільки мені відомо, v-model
рішення підходить лише одному входу, який повертається до їхнього батьківського. Я зайняв небагато часу на пошуки, але документація Vue (2.3.0) дійсно показує, як синхронізувати кілька реквізитів, що надсилаються в компонент назад до батьківського (звичайно, через emit).
Це відповідним чином називається .sync
модифікатором.
Ось що говорить документація :
У деяких випадках нам може знадобитися "двостороння прив'язка" для опори. На жаль, справжнє двостороннє зв’язування може створити проблеми з технічним обслуговуванням, тому що дочірні компоненти можуть мутувати батьків, без того, щоб джерело цієї мутації було очевидним і для батьків, і для дитини.
Ось чому замість цього ми радимо випромінювати події за зразком
update:myPropName
. Наприклад, у гіпотетичній складовій з
title
опорою ми можемо повідомити про намір присвоїти нове значення за допомогою:
this.$emit('update:title', newTitle)
Тоді батьків може прослухати цю подію та оновити властивість локальних даних, якщо цього хоче. Наприклад:
<text-document
v-bind:title="doc.title"
v-on:update:title="doc.title = $event"
></text-document>
Для зручності ми пропонуємо скорочення цього шаблону з модифікатором .sync:
<text-document v-bind:title.sync="doc.title"></text-document>
Ви також можете синхронізувати декілька одночасно, надсилаючи через об’єкт. Ознайомтеся з документацією тут