Computed no Vue aceita getter e setter separados
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.