У меня есть простое поле ввода в шаблоне Vue, и я хотел бы использовать debounce примерно так:
<input type="text" v-model="filterKey" debounce="500">
Однако это debounce
свойство устарело в Vue 2 . В рекомендации только сказано: «используйте v-on: input + стороннюю функцию debounce».
Как правильно это реализовать?
Я пытался реализовать это с помощью lodash , v-on: input и v-model , но мне интересно, можно ли обойтись без дополнительной переменной.
В шаблоне:
<input type="text" v-on:input="debounceInput" v-model="searchInput">
В скрипте:
data: function () {
return {
searchInput: '',
filterKey: ''
}
},
methods: {
debounceInput: _.debounce(function () {
this.filterKey = this.searchInput;
}, 500)
}
Затем ключ фильтра используется в computed
реквизитах.