У меня v-autocomplete с 9000 элементами.
Код компонента выглядит следующим образом:
<v-autocomplete
v-model="form.fields.city_id"
:items="cities_subregions"
item-text="name"
item-value="id"
:filter="locationsFilter"
></v-autocomplete>
В функции locationFilter у меня есть следующее:
locationsFilter (item, queryText, itemText) {
const textOne = item.city_name.normalize('NFD').replace(/[\u0300-\u036f]/g, "").toLowerCase();
const searchText = queryText.normalize('NFD').replace(/[\u0300-\u036f]/g, "").toLowerCase();
return textOne.startsWith(searchText) || searchText.length > 2 && textOne.indexOf(searchText) > -1 && textOne.length/(3*textOne.split(' ').length) < searchText.length;
},
Даже если для этой функции установить return null
, когда пользователь введет ее, она будет запаздывать.
Поэтому я бы хотел, чтобы фильтр locationsFilter
вызывался один раз каждые ~ 250 мс.
Есть ли способ достичь этого?