여러 라이브러리 중에 나는 Slick과 Swiper를 사용했다. 개인적으로 Slick 보다 Swiper가 훨씬 더 사용하기 편했다.
npm i react-slick slick-carousel
끝! 간편하게 사용하기는 좋으나 커스텀 하려고 하니 계속 문제가 발생했다. Next 화살표는 이미지 위에 있는데 Prev 화살표는 이미지 아래에 깔려 있어 보이지 않는 등…
이 문제에 매달리기보다는 다른 라이브러리를 찾기로 했다. 왜냐하면 그게 더 빠를 것 같았고, 또 여러 라이브러리를 써보는 게 좋을 것 같았다.
그래서 찾은 게 바로 Swiper 라이브러리!
function App(){
const settings = {
slidesOffsetBefore: 0,
slidesOffsetAfter : 24,
slidesPerView: 1.8,
spaceBetween: 8,
initialSlide: 1,
centeredSlides: false,
}
return (
<Swiper {...settings}>
<SwiperSlide>
슬라이더
</SwiperSlide>
</Swiper>
);
}
Swiper를 이용해 편하게 슬라이더를 만들었다. 영화 앱을 만들면서 Pagination은 사용하지 않았고, Navigation(화살표)은 커스텀해서 사용했다.
function App(){
const prevRef = useRef(null);
const nextRef = useRef(null);
const settings = {
slidesOffsetBefore: 0,
slidesOffsetAfter : 24,
slidesPerView: 1.8,
spaceBetween: 8,
initialSlide: 1,
centeredSlides: false,
// 화살표 커스텀
navigation: {
prevEl: prevRef.current,
nextEl: nextRef.current,
},
onBeforeInit: (swiper) => {
swiper.params.navigation.prevEl = prevRef.current;
swiper.params.navigation.nextEl = nextRef.current;
swiper.navigation.update();
},
};
return (
<div className={styles.nav}>
<button ref={prevRef}><BsFillCaretLeftSquareFill /></button>
<button ref={nextRef}><BsFillCaretRightSquareFill /></button>
</div>
);
}