素子通信(props,emit)
各構成部品インスタンスには、それぞれのスキャンがあります.したがって、既定では、子構成部品は親構成部品のデータを直接参照することはできません.
Vueは基本的な通信規則に従い、親から子にしかデータを転送できない.
親から子にpropsという特殊な属性を渡すことでデータをダウングレードし、子から親にかけてemitでイベントをアップグレードできます.
親コンポーネントから子コンポーネントにメッセージ属性を渡してみます.サブコンポーネントのpropsを受信することを明確に宣言します. テンプレート内部ではpropsが使用されます.
ダイナミックバインドを行うには、
サブコンポーネントが親コンポーネントから受信するpropsの要件を指定できます.文字列配列として定義するのではなく、検証要件を含むオブジェクトを使用します. String Number Boolean Function Object Array Symbol
子から親にデータを渡す場合は、励起イベントを使用して親構成部品に信号を送信できます.サブコンポーネントで特定のイベントが発生した場合、イベントは親コンポーネントに送信されます. 親コンポーネントは、v−on呼び出し方法としてイベントを受信する.
vueコンポーネント通信方式
Vueは基本的な通信規則に従い、親から子にしかデータを転送できない.
親から子にpropsという特殊な属性を渡すことでデータをダウングレードし、子から親にかけてemitでイベントをアップグレードできます.
propsの使用
親コンポーネントから子コンポーネントにメッセージ属性を渡してみます.
<child message="안녕하세요!"></child>
Propsオプションを使用してVue.component('child', {
// props 정의
props: ['message'],
// props 사용
template: '<span>{{ message }}</span>'
})
上記の方法は、動的バインドだけでなく、親データが変更されてもサブコンポーネントには適用されません.ダイナミックバインドを行うには、
v-bind
プロパティを使用します.<div>
<input v-model="parentMsg">
<child v-bind:message="parentMsg"></child>
</div>
v-bindはビューインスタンスデータをバインドするため、前例のように通常の文字列(「こんにちは!」JavaScript以外の式を使用することを忘れないでください.props検証
サブコンポーネントが親コンポーネントから受信するpropsの要件を指定できます.文字列配列として定義するのではなく、検証要件を含むオブジェクトを使用します.
// 하위 컴포넌트
props: {
// 문자열이며 기본값은 ''
type: {
type: String,
default: '',
},
// 문자열이며 꼭 필요함
value: {
type: String,
required: true,
},
}
type
emit
子から親にデータを渡す場合は、励起イベントを使用して親構成部品に信号を送信できます.
// 하위 컴포넌트
this.$emit('이벤트명');
// 상위 컴포넌트
<child v-on:이벤트명="메소드명"></child>
Reference
この問題について(素子通信(props,emit)), 我々は、より多くの情報をここで見つけました https://velog.io/@cheej10/컴포넌트-통신-props-emitテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol