Loda sh _.debounce не работает в VueJS событии - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь использовать debounce в моем фильтре. Я не хочу отправлять запрос на каждое изменение входного текста, я бы подождал, скажем, одну секунду.

Проблема в том, что фильтр, кажется, вообще не вызывается, если я использую _.debounce .

  <div class="md-form">
        <i class="fas fa-search prefix"></i>
        <input type="text" class="form-control" v-model="filter.fulltext" @input="runFilter" id="x">
        <label for="x">Fulltext vyhľadávanie</label>
  </div>

var app = new Vue({
        delimiters: ['[[', ']]'],
        el: '#app',
        data: { ....
        methods:{
            runFilter() {
                var self = this;

                _.debounce(function () {
                    self.records_page = 1;
                    self.loadRecords();
                    self.loadMarkers();
                 }, 1000)

               },
               ....

Вы знаете, почему он не вызывается через одну секунду?

1 Ответ

1 голос
/ 26 марта 2020

_.debounce () возвращает функцию с закрытием, поэтому вам нужно найти место для хранения дебатированной функции. Обычно вы можете отменить функцию и поместить функцию debounce в созданный хук.

created() {
   this.debouncedGetAnswer = _.debounce(this.getAnswer, 500)
}

Точно так же, как в официальном документе. https://vuejs.org/v2/guide/computed.html

...