上記のイベント発行とvモデルの回答に同意します。ただし、これはgoogleによって返される最初の記事の1つであると思われるため、親に返送したい複数のフォーム要素を持つコンポーネントについて見つけたものを投稿すると思いました。
私は質問が単一の入力を指定していることを知っていますが、これは最も近い一致のようであり、同様のVueコンポーネントを使用して人々を時間を節約する可能性があります。また、誰も.sync
まだ修飾子について言及していません。
私の知る限り、v-model
ソリューションは親に戻る1つの入力にのみ適しています。少し時間をかけて探しましたが、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>
オブジェクトを介して送信することにより、一度に複数を同期することもできます。こちらのドキュメントをご覧ください