React Slick์ ์บ๋ฌ์ ์ปดํฌ๋ํธ๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
npm install react-slick --save
import Slider from 'react-slick';
import 'slick-carousel/slick/slick.css';
import 'slick-carousel/slick/slick-theme.css';
settings ๊ฐ์ฒด๋ฅผ ์ ์ํด์ค๋ค์ Slider ๊ฐ์ฒด์ ์ ๋ฌํ๋ฉด ๋๋ค. ๋ด๊ฐ ์ด ๊ฒ ์ธ์๋ ์์ฒญ ๋ค์ํ ์ต์ ์ด ์๋ค.
const Carousel = () => {
const settings = {
dots: true, // ์บ๋ฌ์
๋ฐ์ ... ์ ํ์ํ ์ง
infinite: true, // ์ฌ๋ผ์ด๋๊ฐ ๋๊น์ง ๊ฐ๋ฉด ๋ค์ ์ฒ์์ผ๋ก ๋ฐ๋ณต
speed: 3000, // ์๋
autoplay: true, // ์๋ ์ฌ์
autoplaySpeed: 3000, // ์๋ ์ฌ์ ์๋
slidesToShow: 1, // ํ ๋ฒ์ ๋ณด์ฌ์ค ์ฌ๋ผ์ด๋ ๊ฐ์
slidesToScroll: 1, // ํ ๋ฒ์ ๋์ด๊ฐ๋ ์ฌ๋ผ์ด๋ ๊ฐ์
nextArrow: <NextArrow />, // ํ์ดํ ๋ฒํผ์ ์ปค์คํ
ํด์ ์ฌ์ฉ
prevArrow: <PrevArrow />,
};
return (
<div>
<Slider {...settings}> // <-- settings ์ ๋ฌ
<div className='h-56 bg-sky-100'>
<img src='image/1' />
</div>
<div className='h-56 bg-pink-100'>
<img src='image/2' />
</div>
<div className='h-56 bg-yellow-100'>
<img src='image/3' />
</div>
<div className='h-56 bg-red-100'>
<img src='image/4' />
</div>
<div className='h-56 bg-purple-100'>
<img src='image/5' />
</div>
</Slider>
</div>
);
};
const NextArrow = ({ onClick }) => { // props๋ก onClick์ ์ ๋ฌํด์ค์ผ ํ๋ค.
return (
<button
onClick={onClick}
type='button'
>
... ์๋ต
</button>
);
};
const PrevArrow = ({ onClick }) => {
return (
<button
onClick={onClick}
type='button'
>
... ์๋ต
</button>
);
};
์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ ์์ฑํ ์ฝ๋๊ฐ ์๋์ ๊ฐ์ด ์๋ฆ๋ค์ด ์บ๋ฌ์
์ด ๋๋ค!
์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธ๊ฑธ ์ ์บ๋ฌ์
์ง์ ๋ง๋ค๊ฒ ๋ค๊ณ ๋๋๋์๋์ง... ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ์๐
๋ชจ๋์ฒ ์ง์ง ์ข์ํ์๋ ๊ตฐ์ ใ ใ ใ ์บ๋ฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ณด๊ณ ๊ฐ๋๋ค
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ผ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ์..๋ฉ๋ชจ ใ ใ ใ ใ ใ ใ ใ ์ทจ์ ์ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด ํ๋ ๊ฑธ ์ฐ์ตํ๋ค ์๊ฐํ๊ณ ์์ต๋๋ค.