The Most Modern Mobile Touch Slider
npm install swiper
// import Swiper JS
import Swiper from 'swiper';
// import Swiper styles
import 'swiper/css';
const swiper = new Swiper(...);
기본적으로 Swiper는 추가 모듈(예: Navigation, Pagination, etc.) 없이 핵심 버전만 내보냅니다. 따라서 이들도 가져오고 구성해야 합니다.
// core version + navigation, pagination modules:
import Swiper, { Navigation, Pagination } from 'swiper';
// import Swiper and modules styles
import 'swiper/css';
import 'swiper/css/navigation';
import 'swiper/css/pagination';
// init Swiper:
const swiper = new Swiper('.swiper', {
// configure Swiper to use modules
modules: [Navigation, Pagination],
...
});
<!-- Slider main container -->
<div class="swiper">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
...
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
<!-- If we need scrollbar -->
<div class="swiper-scrollbar"></div>
</div>
.swiper {
width: 600px;
height: 300px;
}
const swiper = new Swiper('.swiper', {
// Optional parameters
direction: 'vertical',
loop: true,
// If we need pagination
pagination: {
el: '.swiper-pagination',
},
// Navigation arrows
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
// And if we need scrollbar
scrollbar: {
el: '.swiper-scrollbar',
},
});
npm i swiper
swiper/react
exports 2 components: Swiper
and SwiperSlide
:
// Import Swiper React components
import { Swiper, SwiperSlide } from 'swiper/react';
// Import Swiper styles
import 'swiper/css';
export default () => {
return (
<Swiper
spaceBetween={50}
slidesPerView={3}
onSlideChange={() => console.log('slide change')}
onSwiper={(swiper) => console.log(swiper)}
>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
...
</Swiper>
);
};
기본적으로 Swiper React는 Swiper의 핵심 버전을 사용합니다(추가 모듈 없음). Navigation, Pagination 및 기타 모듈을 사용하려면 먼저 설치해야 합니다.
추가 모듈 가져오기 목록은 다음과 같습니다.
- Virtual - Virtual Slides module
- Keyboard - Keyboard Control module
- Mousewheel - Mousewheel Control module
- Navigation - Navigation module
- Pagination - Pagination module
- Scrollbar - Scrollbar module
- Parallax - Parallax module
- FreeMode - Free Mode module
- Grid - Grid module
- Manipulation - Slides manipulation module (only for Core version)
- Zoom - Zoom module
- Lazy - Lazy module
- Controller - Controller module
- A11y - Accessibility module
- History - History Navigation module
- HashNavigation - Hash Navigation module
- Autoplay - Autoplay module
- EffectFade - Fade Effect module
- EffectCube - Cube Effect module
- EffectFlip - Flip Effect module
- EffectCoverflow - Coverflow Effect module
- EffectCards - Cards Effect module
- EffectCreative - Creative Effect module
- Thumbs - Thumbs module
// import Swiper core and required modules
import { Navigation, Pagination, Scrollbar, A11y } from 'swiper';
import { Swiper, SwiperSlide } from 'swiper/react';
// Import Swiper styles
import 'swiper/css';
import 'swiper/css/navigation';
import 'swiper/css/pagination';
import 'swiper/css/scrollbar';
export default () => {
return (
<Swiper
// install Swiper modules
modules={[Navigation, Pagination, Scrollbar, A11y]}
spaceBetween={50}
slidesPerView={3}
navigation
pagination={{ clickable: true }}
scrollbar={{ draggable: true }}
onSwiper={(swiper) => console.log(swiper)}
onSlideChange={() => console.log('slide change')}
>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
...
</Swiper>
);
};
Swiper React는 Swiper 내부의 구성 요소에서 Swiper 인스턴스를 쉽게 가져올 수 있는 useSwiper 후크를 제공합니다.
// some-inner-component.jsx
import { React } from 'react';
import { useSwiper } from 'swiper/react';
export default function SlideNextButton() {
const swiper = useSwiper();
return (
<button onClick={() => swiper.slideNext()}>Slide to the next slide</button>
);
}
// some-inner-component.jsx
import { React } from 'react';
import { useSwiperSlide } from 'swiper/react';
export default function SlideTitle() {
const swiperSlide = useSwiperSlide();
return (
<p>Current slide is {swiperSlide.isActive ? 'active' : 'not active'}</p>
);
}
더 많은 정보는 Swiper-react 공식문서에 있습니다.
실제 사용 시 게시물 업데이트 예정 🚀