Appearance
v-on.native 修飾子の削除 破壊的変更
概要
v-on の .native 修飾子は削除されました。
2.x の構文
v-on でコンポーネントに渡されたイベントリスナーは、デフォルトでは this.$emit でイベントを発行したときにのみトリガーされます。代わりに子コンポーネントのルート要素にネイティブな DOM リスナーを追加するには、.native 修飾子を使用できます:
html
<my-component
v-on:close="handleComponentEvent"
v-on:click.native="handleNativeClickEvent"
/>3.x の構文
v-on の .native 修飾子は削除されました。同時に、新しい emits オプションによって、子が実際に発行するイベントを定義できるようになりました。
その結果、Vue は、子要素でコンポーネント発信イベントとして定義されていないすべてのイベントリスナーを、子要素のルート要素のネイティブイベントリスナーとして追加するようになりました(子要素のオプションで inheritAttrs: false が設定されている場合を除く)。
html
<my-component
v-on:close="handleComponentEvent"
v-on:click="handleNativeClickEvent"
/>MyComponent.vue
html
<script>
export default {
emits: ['close']
}
</script>移行手順
.native修飾子の使用箇所をすべて削除します。- すべてのコンポーネントで
emitsオプションを使用して、イベントをドキュメント化するようにします。
移行ビルドのフラグ: COMPILER_V_ON_NATIVE