親から子へデータを受け渡す
子コンポーネント上でpropsを使って、親から子へ受け渡しをしたい値の変数名を定義していく。
propsはプロパティの略。配列かオブジェクトで記載していく。
propsは「,」カンマで区切る事で、複数作ることが可能。
<script>
export default {
props: ["number"],
methods: {
count() {
this.number += 1;
}
}
};
</script>
親コンポーネントのtemplate上でv-bindを使用し、propsで定義した変数名を表示させる。
v-bindは「:」に省略して記載することが可能。
<template>
<div>
<Count :number="number"></Count>
</div>
</template>
propsの命名規則
JavaScript上では、キャメルケースで記載する。
DOMテンプレートに書く場合は、ケバブケースを用いる。
キャメルケース
最初の単語以降、頭文字を大文字にした書き方
countHeader
ケバブケース
単語の間に「-」ハイフンを用いる書き方。
count-header
子から親へデータを受け渡す
子コンポーネント側でカスタムイベントを作成する。
$emitを使う事で、親(App.vue)のイベント発火をする事ができる。
this.$emit(‘第1引数[イベント名]’,第2引数[親に送りたい値]);
第1引数のカスタムイベント名は、ケバブケースで命名する。
methods: {
count() {
this.$emit('click-count',this.number + 100);
}
親側では、v-onを使ってカスタムイベントを実装する。
v-onは「@」で省略可能。
v-onの後に来るイベント名は、先ほど子で命名したカスタムイベント名を入れる。
<Count :number="number" @click-count="number = $event"></Count>
カスタムイベントの実装は、methodに処理をまとめる方法もある。
<Count :number="number" @click-count="countNumber"></Count>
methods:{
countNumber(value){
this.number = value;
}
}

