Vueのv-bindで、親から子へのデータ受け渡しを整理。
以下のようなvueファイルを見たときに、:keyなどタグの中身(任意で設定した属性)が何を表しているのかを理解できるようになる。
<VrBtn
:key="key"
:disabled="disabled"
:command="command"
/>
export default {
props: {
value: { type: Boolean },
disabled: { type: Boolean, default: false },
command: { type: Object, required: true },
},
}
## データ受け渡しの流れ
データ受け渡しの流れは4steps。
属性に変数を入れて、その属性を親と子で受けわたす。
親:①子に渡すデータを定義
↓
親:②子のテンプレートタグに属性と変数を記述
↓
子:③propsで受け取る属性を定義
↓
子:④属性を指定してデータ呼び出し
▼注意点
・親から渡すデータは変数。
┗ ダブルクオテーションで囲むがテキストではない。
┗ :属性名="変数名"
の形で記述。属性を子に渡す。
┗ : は v-bind: の省略形
・子のpropsではデータの型などを指定可能
┗ String:文字列、Boolean:真偽値
┗ required: true データの必要性
┗ default: false/true 真偽値のデフォルト設定
## データの受け渡し例
・使うファイルは2つ
親:parent.vue
子:TmpBtn.vue (vuetifyでボタンを表示)
・実現したいこと
親で定義したデータを子のテンプレート内で呼び出す。
<template>
<v-app>
<TmpBtn
<!--②子のテンプレートタグに属性と変数を記述-->
:bind="text"
/>
</v-app>
</template>
<script>
import TmpBtn from "./TmpBtn"
export default {
name: "Parent",
components:{
TmpBtn
},
data(){
return{
//①子に渡すデータを定義
text:"Text form Parent"
}
}
}
</script>
<template>
<v-btn
width="20%"
elevation="2"
rounded
>
<!--④属性を指定してデータ呼び出し-->
{{bind}}
</v-btn>
</template>
<script>
export default {
props:{
//③propsで受け取る属性を定義
bind: {type:String},
}
}
</script>
**▼出力結果** 
子のテンプレートを表示したときに、無事、親のデータを受け渡すことができた。
## まとめ
以下のような記述を見たら、親から子にデータを渡していることがわかる。
<VrBtn
:key="key"
:disabled="disabled"
:command="command"
/>
propsがあれば、子のテンプレートで親からデータを受け取っているなということがわかる。
export default {
props: {
value: { type: Boolean },
disabled: { type: Boolean, default: false },
command: { type: Object, required: true },
},
}