J'ai une boîte de saisie simple dans un modèle Vue et je voudrais utiliser un debounce plus ou moins comme ceci:
<input type="text" v-model="filterKey" debounce="500">
Cependant, la debounce
propriété est obsolète dans Vue 2 . La recommandation dit seulement: "utiliser v-on: entrée + fonction anti-rebond tierce".
Comment le mettez-vous correctement en œuvre?
J'ai essayé de l'implémenter en utilisant lodash , v-on: input et v-model , mais je me demande s'il est possible de se passer de la variable supplémentaire.
Dans le modèle:
<input type="text" v-on:input="debounceInput" v-model="searchInput">
Dans le script:
data: function () {
return {
searchInput: '',
filterKey: ''
}
},
methods: {
debounceInput: _.debounce(function () {
this.filterKey = this.searchInput;
}, 500)
}
La clé de filtre est ensuite utilisée plus tard dans les computed
accessoires.