React Slick은 react에서 캐러셀(이미지 슬라이드)를 쉽게 구현할 수 있도록 도와주는 라이브러리이다.
쇼핑몰 사이트, 영화 사이트 같은 곳에 활용 가능하다.
Slick 홈페이지 <- 여기서 슬라이드의 종류도 볼 수 있다.
npm
npm install react-slick
yarn
yarn add react-slick
Slick에서 제공하는 CSS를 사용하기위해 Slider를 사용하려는 컴포넌트에 아래의 코드를 Import한다.
import "slick-carousel/slick/slick.css; import "slick-carousel/slick/slick-theme.css;
아래의 이미지처럼 node_modules에 파일들이 존재한다.
Slick은 Settings라는 type을 props로 전달받는다.
이를 이용하여 우리가 생성할 Slider 컴포넌트에서 자동으로 slider를 넘기거나, 한번에 몇개의 컴포넌트를 보여줄 것인지 등..의 설정이 가능하다.
옵션을 이용한 슬라이더 예제를 보면 좋을 것 같다.
아래는 간단한 예시코드이다.
const Filter = () => { const settings = { dots: false, infinite: false, // arrows: true, speed: 500, slidesToShow: 8, slidesToScroll: 2, // autoplay: true, nextArrow: <SvgIcon component={NavigateNextIcon} inheritViewBox />, prevArrow: <SvgIcon component={NavigateBeforeIcon} inheritViewBox />, };
위의 settings를 아래의 코드처럼 사용해주면 된다.
return( <Slider {...settings}> ... // 여기에 리스트 아이템을 넣으면 된다 </Slider> );
에어비엔비 클론코딩 사이트에 적용해봤다.
styled-components를 사용하면 된다.
const StyledSlider = styled(Slider)` .slick-next { color: black; position: relative; top: 7vh; right: 2vw; } .slick-prev { color: black; left: 0; position: relative; top: 7vh; } .slick-list { width: 80%; padding: 1; right: -20px; } `;
컴포넌트 사용은 아래와 같이 하면 된다.
return( <StyledSlider {...settings}> ... // 여기에 리스트 아이템을 넣으면 된다 </StyledSlider> );
라이브러리에 기본적으로 CSS가 적용되어있어서 수정을 하려면 그 요소의 클래스이름을 찾아 위와 같이 고쳐줘야하기에 불편한 점이 있긴하다.
그래도 라이브러리가 사용하기 간단하여 Carousel을 구현할 때, 자주 사용할 것 같다.