初めに
皆さんこんにちは!
今回はVue3でシステムを実装時に新しくemitsオプションに出会ったのでこちらを記事にしたいと思います。
emitsオプションとは
まずはemitsオプションの概要から紹介させていただきます。
vue3アップデート時の新機能として追加されたオプションになります。
emit実行時にpropsと同じような形で、
受け取る際にバリデーションの実行や型の指定が可能になりました。
公式より
Vue 3 では emits オプションが、既存の props オプションと同様に提供されるようになりました。このオプションを使用して、コンポーネントが親に発行できるイベントを定義することができます。
Vue3 リファレンス
emitsの使い方
emitsはpropsのように構文設定することが可能になりました。
設定方法としては、2通りあって
1.配列での設定
2.オブジェクトでの設定
になります。
まずは公式の記述例を見ていきましょう。
const app = createApp({})
// 配列の構文
app.component('todo-item', {
emits: ['check'],
created() {
this.$emit('check')
}
})
// オブジェクトの構文
app.component('reply-form', {
emits: {
// バリデーションなし
click: null,
// バリデーションあり
submit: payload => {
if (payload.email && payload.password) {
return true
} else {
console.warn(`Invalid submit event payload!`)
return false
}
}
}
})
いかがでしょうか。
まさしくpropsのような書き方なのでVue2を利用されていた方であれば理解が早いと思います。
オブジェクト構文で記述することで、
型指定やバリデーションの実装も可能になっております。
最後に
良いVue3ライフを!!
参考にさせていただいたサイト