Можно ли изменить computed

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

Ответ

Нет, computed свойства во Vue.js предназначены только для чтения. Они автоматически пересчитываются при изменении зависимых реактивных данных, но напрямую их изменять нельзя.

Если нужно изменяемое значение, используйте data или ref (в Composition API).

Пример:

computed: {
  fullName() {
    return this.firstName + ' ' + this.lastName
  }
}
// Попытка изменить вызовет ошибку
this.fullName = 'New Name' // Error!

Для двустороннего связывания можно использовать computed с геттером/сеттером:

computed: {
  fullName: {
    get() {
      return this.firstName + ' ' + this.lastName
    },
    set(newValue) {
      const [first, last] = newValue.split(' ')
      this.firstName = first
      this.lastName = last
    }
  }
}