Input с onChange → debounce 300ms → fetch suggestions → показать dropdown. Ключевые моменты: debounce чтобы не дёргать API на каждый символ, AbortController для отмены предыдущего запроса, keyboard navigation (ArrowUp/Down/Enter/Escape), highlight совпадений в тексте, aria-combobox для accessibility. Состояния: пустой input, загрузка, результаты, нет результатов, ошибка. Click outside закрывает dropdown. Кеширование предыдущих запросов. Минимальная длина запроса (2-3 символа). Библиотеки: downshift, headless-ui combobox.
Как реализовать autocomplete?
Middle
268 просмотровAFK Offer AI
Как оптимизировать размер бандла?