Модификатор .native
используется на компонентах , а не на собственных виджетах.
Могут быть случаи, когда вы хотите слушать напрямуюродное событие в корневом элементе компонента.В этих случаях вы можете использовать модификатор .native для v-on
. Вы можете использовать .native
во внешней привязке, чтобы перехватить событие change
, всплывающее изнутри (поскольку обычно собственные событияпузыря, в то время как события Vue этого не делают), или вы можете использовать не-.native
события как во внутреннем, так и во внешнем компонентах, чтобы создавать свои собственные пузыри.
Фрагмент ниже делает оба:
new Vue({
el: '#app',
methods: {
change() {
console.log("Native change");
},
change2() {
console.log("Non-native");
}
},
components: {
myCheckbox: {
template: '#inner-template'
}
}
});
<script src="https://unpkg.com/vue@latest/dist/vue.js"></script>
<template id="inner-template">
<input id='one' type='checkbox' v-on:change="$emit('change')" />
</template>
<div id="app">
<my-checkbox v-on:change.native="change" @change="change2"></my-checkbox>
</div>