Vue3 props プロパティ
propsはコンポーネント間でデータを渡す方法のひとつです。
Vue.js では、親コンポーネントはpropsデータを子コンポーネントに渡すことができます。子コンポーネントはこれらのデータを受け取った後、データに基づいてレンダリングやその他の操作を実行できます。
たとえ話で理解する
はprops郵便配達員に例えることができます。親コンポーネントは差出人、子コンポーネントは受取人です。親コンポーネントはデータ(手紙)をprops(郵便配達員)を通じて子コンポーネントに渡します。子コンポーネントはデータを受け取った後、データの内容に基づいて処理できます。
props の使い方は?
Vue.js での props の使用はpropsとても簡単です。以下では、例を通してその使い方を説明します。props。
例:props の受け渡しと受け取り
親コンポーネントとParentComponent子コンポーネントがあるとします。ChildComponent。親コンポーネントから子コンポーネントにメッセージを渡したいとします。
1. 親コンポーネント(ParentComponent.vue)
実例
<div>
<ChildComponent :message="parentMessage" />
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
parentMessage: 'Hello from Parent!'
};
}
};
</script>
2. 子コンポーネント(ChildComponent.vue)
実例
<div>
<p>{{ message }}</p>
</div>
</template>
<script>
export default {
props: {
message: {
type: String,
required: true
}
}
};
</script>
解説
親コンポーネント:親コンポーネントでは、props を通じて
:message="parentMessage"将parentMessageデータを子コンポーネントに渡します。parentMessageは親コンポーネントで定義された変数で、その値は'Hello from Parent!'。子コンポーネント:子コンポーネントでは、props を使用して
props親コンポーネントから渡されたデータを受け取ります。messageは子コンポーネントで定義された props でprops、その型はString、そしてrequired: true、これはprops必須であることを示しています。レンダリング:子コンポーネントは
messageprops を受け取った後、それをテンプレートにレンダリングして、次のように表示します。<p>Hello from Parent!</p>。
props の型と検証
Vue.js では、props型と検証ルールを指定して、渡されるデータが期待どおりであることを保証できます。
例:型と検証
実例
message: {
type: String,
required: true
},
age: {
type: Number,
default: 18
},
hobbies: {
type: Array,
validator: function (value) {
return value.length > 0;
}
}
}
解説
**
type**:指定するのはpropsprops のデータ型です。指定できるのはString、Number、Boolean、Array、Objectなどです。**
required**:指定するのはpropsprops が必須かどうかです。もし必須に設定された場合true、親コンポーネントはその props を渡す必要がありprops、そうしないと警告が表示されます。**
default**:props にpropsデフォルト値を設定します。親コンポーネントがその props を渡さなかった場合props、子コンポーネントはデフォルト値を使用します。**
validator**:カスタム検証関数で、検証するのはpropsprops の値が特定の条件を満たすかどうかです。
注意事項
単方向データフロー:Vue.js では、
propsprops は単方向であり、データは親コンポーネントから子コンポーネントへのみ流れます。子コンポーネントは直接変更すべきではありません。props値を変更する必要がある場合は、イベントを発火して親コンポーネントに通知し、変更してもらいます。命名規則:
propsprops の命名にはキャメルケースを推奨します。例:userName。親コンポーネントでpropsprops を渡す際は、ハイフン区切りの使用を推奨します。例:user-name。動的 props:v-bind によって
v-bind或:props を動的にバインドできますprops。例えば:message="parentMessage"。
その他の拡張
Vue3 オプションAPI