# Удалён модификатор v-on.native
кардинальное изменение

# Обзор

Модификатор .native для v-on был удалён.

# Синтаксис в 2.x

Обработчики событий, переданные в компонент через v-on по умолчанию вызываются по событию, которое генерируется с помощью this.$emit. Для добавления обработчика нативного события DOM к корневому элементу дочернего компонента требовалось использовать модификатор .native:

<my-component
  @close="handleComponentEvent"
  @click.native="handleNativeClickEvent"
/>
1
2
3
4

# Что изменилось в 3.x

Модификатор .native для v-on был удалён. В то же время, новая опция emits позволяет дочерним компонентам определять, какие события он может генерировать.

Следовательно, Vue теперь добавит все слушатели событий, которые не были объявлены как генерируемые дочерним компонентом, в качестве нативных слушателей событий (кроме случаев, когда inheritAttrs: false была задана в опциях дочернего компонента).

<my-component
  @close="handleComponentEvent"
  @click="handleNativeClickEvent"
/>
1
2
3
4

Содержимое MyComponent.vue:

<script>
  export default {
    emits: ['close']
  }
</script>
1
2
3
4
5

# Стратегия миграции

  • удалить все экземпляры модификатора .native.
  • убедитесь, что все компоненты документируют свои события с помощью опции emits.

Флаг сборки для миграции: COMPILER_V_ON_NATIVE

# См. также