TIL

Computed no Vue aceita getter e setter separados

  • Vue.js
  • TypeScript

A maioria usa computed só como getter, mas ele também aceita setter — o que elimina a necessidade de watch + variável auxiliar em muitos casos de input:

const fullName = computed({
  get() {
    return `${firstName.value} ${lastName.value}`;
  },
  set(value: string) {
    const [first, ...rest] = value.split(" ");
    firstName.value = first;
    lastName.value = rest.join(" ");
  },
});

Agora v-model="fullName" funciona diretamente num input sem nenhum watch.