카테고리 없음

[1027] react slider / 리액트 슬라이드 / react 캐로셀 carousel 만들기

문앵 2021. 10. 27. 17:09

완성본 이미지~ 

 

오늘은 react에서 슬라이드 기능을 쉽게 구현할 수 있는 라이브러리를 사용해보았다.

라이브러리 이름은 React Slick

https://react-slick.neostack.com/

 

Neostack

The last react carousel you will ever need

react-slick.neostack.com

 

 


 

 

🔆 React Slick

 

1. 우선 설치

 npm install react-slick --save  
 npm install slick-carousel --save

 

2. 기본 css 세팅

import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";

 

3. 홈페이지에 나와있는 슬릭의 기본 코드는 class 형으로, 다음과 같다. 

import React, { Component } from "react";
import Slider from "react-slick";

export default class SimpleSlider extends Component {
  render() {
    const settings = {
      dots: true,
      infinite: true,
      speed: 500,
      slidesToShow: 1,
      slidesToScroll: 1
    };
    return (
      <div>
        <h2> Single Item</h2>
        <Slider {...settings}>
          <div>
            <h3>1</h3>
          </div>
          <div>
            <h3>2</h3>
          </div>
          <div>
            <h3>3</h3>
          </div>
          <div>
            <h3>4</h3>
          </div>
          <div>
            <h3>5</h3>
          </div>
          <div>
            <h3>6</h3>
          </div>
        </Slider>
      </div>
    );
  }
}

 

 

4. 이걸 함수형으로 사용할것이다.

import React, { Component } from "react";
import Slider from "react-slick";

const SimpleSlider = ()=>{

    const settings = {
      dots: true,
      infinite: true,
      speed: 500,
      slidesToShow: 1,
      slidesToScroll: 1
    };
    
    return (
    	<Styled_Slide {...settings}>
                <div>
                    <h3>1</h3>
                </div>
                <div>
                    <h3>2</h3>
                </div>
                <div>
                    <h3>3</h3>
                </div>
                <div>
                    <h3>4</h3>
                </div>
                <div>
                    <h3>5</h3>
                </div>
            </Styled_Slide>  
    );
}


export default SimpleSlider

 

 

이외에도 다양한 세팅값이 있는데 ,

  dots: true,  // 슬라이드 밑에 점 보이게
  infinite: true,  // 무한으로 반복
  speed: 500,
  autoplay: true,
  autoplaySpeed: 2000,  // 넘어가는 속도
  slidesToShow: 4,  // 4장씩 보이게
  slidesToScroll: 1,  // 1장씩 뒤로 넘어가게
  centerMode: true,
  centerPadding: '0px',  // 0px 하면 슬라이드 끝쪽 이미지가 안잘림
  
  ** 참고 : https://velog.io/@poew/react-slick-%EC%82%AC%EC%9A%A9%EB%B2%95

 

 

 

5. 추가 커스텀 css를 위한 styled-component 세팅

나같은 경우는 css 파일을 따로 빼서 관리하므로 해당 컴포넌트 경로를 가져와주고

import {Styled_Slide} from "./Thumbnail.css"

 

 

6. 그러고서 css 파일에 세팅을 해줬다. (나는 이걸 해주니 비로소 보였음..)

import Slider from "react-slick";

export const Styled_Slide = styled(Slider)`
	
    .slick-list{ //얘로 크기조정 했음
    	width: 300px;
        height: 400px;
        margin: 0 auto;
        background-color: #f0f9ff;
    }
    
    .slick-prev:before, .slick-next:before{ //얘는 양옆 버튼. 커스텀 해줘야 보임
    	font-family: 'slick';
        font-size: 40px;
        line-height: 1;
        opacity: .75;
        color: #000000;
        -webkit-font-smoothing: antialiased;
    }
`

 

 

 

---------------------------------------------------------------------------------

 

 

💙 React Slick의 장점은

1. 번거로운 과정 없이 슬라이드를 구현할 수 있다는 점!

옵션값으로 밑의 점을 뺸다던지 , 한번에 몇장 넘어가게 할지 등도 쉽게 세팅할 수 있음. (왕초보자인 나도 쉽게했으니)

 

2. 커스텀을 다양하게 할 수 있다는 점도 좋은 것 같다. (어찌보면 단점)

구글에 보면 여러가지 데모가 있던데 이쁜것도 많고 신기한것도 많았음! 

 

다만 그만큼 일일히 내가 css를 만져줘야 해서 번거롭다고 느껴질 수도 있을듯! 

 

반응형