Mam proste pole wejściowe w szablonie Vue i chciałbym użyć debounce mniej więcej w ten sposób:
<input type="text" v-model="filterKey" debounce="500">
Jednak debounce
właściwość została wycofana w Vue 2 . Zalecenie mówi tylko: „użyj v-on: wejście + funkcja odbicia strony trzeciej”.
Jak poprawnie to wdrażasz?
Próbowałem zaimplementować to za pomocą lodash , v-on: input i v-model , ale zastanawiam się, czy da się to zrobić bez dodatkowej zmiennej.
W szablonie:
<input type="text" v-on:input="debounceInput" v-model="searchInput">
W skrypcie:
data: function () {
return {
searchInput: '',
filterKey: ''
}
},
methods: {
debounceInput: _.debounce(function () {
this.filterKey = this.searchInput;
}, 500)
}
Klucz filtru jest następnie używany później we właściwościach computed
.