Есть ли опыт работы с class component в Vue 2

«Есть ли опыт работы с class component в Vue 2» — вопрос из категории Vue, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, есть опыт работы с class component в Vue 2.
Для этого использовался декоратор @Component из библиотеки vue-class-component или vue-property-decorator.

Пример:

import { Vue, Component, Prop } from 'vue-property-decorator'

@Component
export default class MyComponent extends Vue {
  @Prop({ default: '' }) readonly title!: string

  count = 0

  increment() {
    this.count++
  }
}

Плюсы:

  • Более привычный синтаксис для разработчиков с опытом в ООП
  • Четкая структура компонента (props, data, methods в одном месте)

Минусы:

  • Дополнительная зависимость
  • Меньше гибкости по сравнению с Options API
  • Vue 3 Composition API предлагает лучшую альтернативу