Альтернативы Swiper для React — в зависимости от того, от чего вы на самом деле уходите

От Swiper не уходят из-за того, что он плохой — это самый полнофункциональный слайдер из существующих. Уходят из-за веса (≈40 kB ещё без модулей), из-за необходимости наследовать его DOM и CSS, либо потому что их «слайдер» на самом деле никогда не был слайдами. У каждой жалобы — свой лучший ответ.

SwiperEmblakeen-sliderreact-horizontal-scrolling-menu
Размер (ядро, min+gzip)≈40 kB≈8 kB≈7 kB≈5.7 kB
МодельСлайды, всё включеноСлайды, headlessСлайды, минимальный движокЭлементы в нативно прокручиваемом ряду
Эффекты и модулиСамый богатый наборПлагины / вручнуюКое-что встроеноНет — вместо этого рецепты
Владеет слоем жестовДа (transforms)Да (transforms)Да (transforms)Нет — прокручивает браузер
Видимость по элементамСобытия по индексу слайдаСобытия по индексу слайдаСобытия по индексу слайдаВстроено (useIsVisible)
Лучше всего заменять, когдаВы и так стилизуете всё самиНужен минимальный слайдер без привязки к React«Слайды» на самом деле кликабельные элементы

Размеры приведены приблизительно для ядра — у Swiper размер растёт с импортируемыми модулями, а значит, урезанная сборка Swiper меньше, чем гласит его репутация.

Спасаясь от килобайтов: Embla или keen-slider

Если продукт — настоящая карусель с прилипанием, показывающая по одной странице слайдов за раз, — лёгкие движки подходят почти как готовая замена:

Оба сохраняют модель слайдов на основе transform, поэтому эффекты вроде fade или coverflow остаются на вашей совести — если они вам нужны, урезанная сборка Swiper честно окажется лучшим ответом, чем реализовывать их заново.

Уход от модели слайдов: случай в форме меню

Другой выход — для случаев, где семантика слайдов Swiper никогда не была несущей: ряды категорий, стены логотипов, панели вкладок, панели чипов, товарные рейлы. Выдаёт это конфигурация вроде slidesPerView: 'auto' вместе с freeMode: true — эта пара означает, что Swiper просят изображать нативную прокрутку.

react-horizontal-scrolling-menu (≈5.7 kB) и есть эта нативная прокрутка плюс то, чего браузер не поставляет: видимость по элементам, scroll-to-item, стрелки, учитывающие края, и перетаскивание, не ломающее клики. Никаких эффектов, никакого прилипания, никакой эмуляции жестов — см. страницы ряд в стиле Netflix, вкладки и панель чипов, либо полную таблицу.

Честное предупреждение в обе стороны

Уйти от Swiper ради экономии веса, а затем вручную строить автовоспроизведение, пагинацию, a11y-объявления и эффекты — вот как проблема на 40 kB превращается в проблему на человеко-месяц. Переходите на более лёгкий движок, когда ваше использование действительно является подмножеством, и на прокручиваемое меню — только когда семантика слайдов с самого начала была фиктивной. Если вы используете глубину Swiper, оставайтесь на Swiper.