Как отмечено в комментариях, это поведение изменяется в v2.2.15. Примечания к выпуску показывают, что изменение является преднамеренным,
VAutocomplete: проверка входной информации начального поиска (# 10642) (e09c916), закрывает # 9757 # 9757 # 9757
В частности, код, который изменяется, это метод VAutocomplete setSearch()
setSearch () {
// Wait for nextTick so selectedItem
// has had time to update
this.$nextTick(() => {
if (
!this.multiple ||
!this.internalSearch ||
!this.isMenuActive
) {
this.internalSearch = (
!this.selectedItems.length ||
this.multiple ||
this.hasSlot
)
? this.internalSearch || null // "? null" in v2.2.14
: this.getText(this.selectedItem)
}
})
},
Если вы довольны «исправлениями» в своем приложении, это можно отменить, используя ссылку на автозаполнение
<template>
<div>
<v-autocomplete ref="autocomplete" v-model="input" :items="items" clearable></v-autocomplete>
<v-btn @click="reset">reset</v-btn>
<v-btn @click="value">get value</v-btn>
<div>{{input}}</div>
</div>
</template>
<script>
export default {
name: "playground",
data: () => ({
input: null,
items: ["a", "b", "c", "d"]
}),
mounted() {
console.clear();
console.log(this.$refs);
},
methods: {
value() {
alert("value: " + this.input);
},
reset() {
this.$nextTick(() => {
this.input = null;
this.$refs.autocomplete.internalSearch = null;
})
}
}
};
</script>
Codesandbox