# Удалён модификатор v-on.native
кардинальное изменение
# Обзор
Модификатор .native
для v-on
был удалён.
# Синтаксис в 2.x
Обработчики событий, переданные в компонент через v-on
по умолчанию вызываются по событию, которое генерируется с помощью this.$emit
. Для добавления обработчика нативного события DOM к корневому элементу дочернего компонента требовалось использовать модификатор .native
:
<my-component
@close="handleComponentEvent"
@click.native="handleNativeClickEvent"
/>
2
3
4
# Что изменилось в 3.x
Модификатор .native
для v-on
был удалён. В то же время, новая опция emits
позволяет дочерним компонентам определять, какие события он может генерировать.
Следовательно, Vue теперь добавит все слушатели событий, которые не были объявлены как генерируемые дочерним компонентом, в качестве нативных слушателей событий (кроме случаев, когда inheritAttrs: false
была задана в опциях дочернего компонента).
<my-component
@close="handleComponentEvent"
@click="handleNativeClickEvent"
/>
2
3
4
Содержимое MyComponent.vue
:
<script>
export default {
emits: ['close']
}
</script>
2
3
4
5
# Стратегия миграции
- удалить все экземпляры модификатора
.native
. - убедитесь, что все компоненты документируют свои события с помощью опции
emits
.
Флаг сборки для миграции: COMPILER_V_ON_NATIVE