В документах Vue.js предлагается использовать функцию отладки lodash для отсеивания дорогих методов, которые я успешно реализовал.Но иногда я не хочу действовать немедленно, и документы lodash говорят:
Функция debounce поставляется с методом отмены для отмены отложенных вызовов func и методом сброса для немедленного их вызова .
Но это все.Нет информации, как вызвать метод flush.Я нашел это сообщение в блоге, но я не уверен, как реализовать это в компоненте Vue.js.
Это то, что я сейчас имею в своем компоненте Vue.js ( codepen ):
<template>
<input type='text' @keyup="change" @keyup.enter="changeNow">
</template>
<script>
export default {
name: "MyComponent",
methods: {
change: _.debounce(function() {
console.log("changing...");
}, 250),
changeNow: function() {
this.change();
this.change.flush();
}
}
};
</script>
change
правильно отлажен и запускается только один раз после ввода текста, как и ожидалось.Тем не менее, changeNow
выдает следующую ошибку:
Uncaught TypeError: this.change.flush не является функцией
Любой совет о том, как реализовать это, будет оченьоценили!