Vue 3でのプロパティ APIとイベントハンドリングの見直し

Vue 3ではプロパティAPIとイベントハンドリングの設計が大幅に改善され、より柔軟で効率的なコードが書けるようになりました。本記事では、その詳細な使い方とベストプラクティスを解説します。
目次
プロパティ APIとは
プロパティAPIは、コンポーネント間でデータを受け渡すための機能です。
export default {
props: {
title: String,
isActive: Boolean
}
}
デフォルト値の設定
プロパティにデフォルト値を設定する方法です。
props: {
count: {
type: Number,
default: 0
}
}
プロパティの型チェック
型チェックを行うことでバグを未然に防ぎます。
props: {
user: {
type: Object,
required: true
}
}
プロパティに対するバリデーション
プロパティの値をバリデーションします。
props: {
age: {
type: Number,
validator: (value) => value > 0
}
}
イベントハンドリングの基本
Vue 3ではイベントハンドリングがシンプルに書けます。
<template>
<button @click="handleClick">Click Me</button>
</template>
<script>
export default {
methods: {
handleClick() {
console.log('Button clicked')
}
}
}
</script>
イベントの引数
イベントに引数を渡す方法です。
<button @click="handleClick(42)">Click</button>
methods: {
handleClick(value) {
console.log(value)
}
}
イベント修飾子
Vueではイベントを修飾して特定の動作を制御できます。
<button @click.stop="handleClick">Stop Propagation</button>
<button @click.prevent="handleClick">Prevent Default</button>
カスタムイベントの作成
カスタムイベントを定義し、親コンポーネントに伝播します。
<template>
<button @click="$emit('custom-event')">Emit Event</button>
</template>
emitの型チェック
Vue 3ではemitの型を定義できます。
emits: ['increment']
イベントオプションの活用
オプションを使ってイベントの動作を細かく制御します。
emits: {
increment: null,
submit: (payload) => payload !== ''
}
v-modelの改良点
Vue 3ではv-modelが大幅に改善されました。
<template>
<input v-model="message" />
</template>
props: ['modelValue'],
emits: ['update:modelValue'],
複数のv-model
Vue 3では複数のv-modelを使用できます。
<template>
<input v-model:title="title" v-model:content="content" />
</template>
props: ['title', 'content'],
emits: ['update:title', 'update:content'],
まとめ
Vue 3のプロパティAPIとイベントハンドリングは、コンポーネントの設計と再利用性を向上させる強力な機能です。新しいAPIを活用して、よりメンテナンス性の高いコードを構築しましょう。
-
前の記事
Railsエラー『ActionController::UnknownFormat』の解決方法 2025.02.10
-
次の記事
JavaScriptのデザインパターン:Observerパターンでイベント駆動アーキテクチャを構築 2025.02.10
コメントを書く