React์์ ๋ง์ด ์ฌ์ฉํ๋ Swiper๋ ์ด๋ฏธ์ง ์บ๋ฌ์ ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
ํ์ฌ ํ๋ก์ ํธ์์ Tailwind CSS์ ํจ๊ป Swiper๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋๋ ์ฅ๋จ์ ์ ์ ๋ฆฌํด๋ณด์๋ค.
์ฅ์
1. ์ฌ์ฉ์ด ๊ฐํธํ๋ค
Swiper๋ ๊ธฐ๋ณธ์ ์ธ ์ค์ ๋ง์ผ๋ก๋ ์ฝ๊ฒ ์บ๋ฌ์ ์ ๊ตฌํํ ์ ์๋ค.
์บ๋ฌ์
์ด ํ์ํ ๋ถ๋ถ์ <Swiper>
๋ฅผ ์์ฑํ๊ณ , ๊ทธ ๋ด๋ถ์ <SwiperSlide>
๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ค.
<Swiper>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
</Swiper>
2. ๋ฌธ์ํ๊ฐ ์๋์ด์๋ค
Swiper๋ ๋ฌธ์๊ฐ ์ ์ ๋ฆฌ๋์ด ์๊ณ , ๋ค์ํ ์์ ๋ ์ ๊ณต๋์ด ์์ด ์ฒ์ ์ฌ์ฉํ๋ ์ฌ๋๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค.
Swiper - The Most Modern Mobile Touch Slider
๋จ์
1. Tailwind์ ํธํ์ฑ์ด ๋์ง ์๋ค
Swiper๋ Tailwind CSS์ ํจ๊ป ์ฌ์ฉํ๊ธฐ์ ๋ถํธํ ๋ถ๋ถ์ด ์๋ค.
ํ
์ผ์๋์ ๊ฒฝ์ฐ ํด๋์ค๋ช
์ ํตํด ๊ฐ๋จํ๊ฒ ์คํ์ผ์ ์ ์ํ ์ ์๋ ์ ์ด ์ฅ์ ์ด ์๋ค. ํ์ง๋ง Swiper๋ CSS ์์
์.css
ํ์ผ์ ์์ฑํด ์ง์ ์คํ์ผ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ธ๋ผ์ธ ์คํ์ผ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์๋ฅผ ๋ค์ด:
.swiper{}
<Swiper
...
style={{ width: '350px' }}
>
์ด๋ฐ ์ ๋๋ฌธ์ ํ ์ผ์๋์ ๊ฐํธํจ๊ณผ๋ ๋ค์ ๊ฑฐ๋ฆฌ๊ฐ ์๋ค.
2. ๋ค๋ฅธ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฐ์ฐ๋๋ฐ ์๊ฐ์ด ํ์ํ๋ค
Swiper๋ ๋ค์ํ ์ค์ ์ ์ ๊ณตํ์ง๋ง, ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ค์ ํญ๋ชฉ๋ค์ ์ตํ๋ ๋ฐ ์๊ฐ์ด ํ์ํ๋ค.
<Swiper
spaceBetween={10} // <- ์ด๋ฐ ๋ด๋ถ ์ค์ ๋ค์ด ๋ง๋ค.
centeredSlides
pagination={{clickable: true,}}
modules={[Autoplay]}
autoplay={{ delay: 4000, disableOnInteraction: false }}
loop
slidesPerView={1}
grabCursor
onSlideChange={handleSlideChange}
style={{ width: '350px' }}
>...</Swiper>
ํ์ง๋ง ์ด ๋ถ๋ถ์ ์ด์ฉ ์ ์๋ค๊ณ ์๊ฐํ๋ค. ์คํ๋ ค ์ฅ์ ์ด ๋ ์๋..?
3. ํ ์คํธ ์ค์ ์ ์ถ๊ฐ ์์ ์ด ํ์ํ๋ค
ํ์ฌ ํ๋ก์ ํธ์์ Jest๋ก ์ปดํฌ๋ํธ ํ ์คํธ๋ฅผ ์งํ ์ค์ธ๋ฐ, Swiper๊ฐ ํฌํจ๋ ํ ์คํธ๋ฅผ ์งํํ๋ ค๋ฉด ์์ธ ์ค์ ์ ์ถ๊ฐ๋ก ํด์ผํ๋ค. (๊ทธ๋ฅ ๋ด๊ฐ Jest์ ์ต์ํ์ง ์์์ ๊ทธ๋ฐ ๊ฒ์ผ ์๋ ์๋ค.)
๋ฌผ๋ก Swiper๋ง์ ๋ฌธ์ ๋ผ๊ธฐ๋ณด๋ค๋ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๊ณตํต์ ์ธ ์ด๋ ค์์ผ ์ ์๋ค.
ํ์ง๋ง ์ด ์์ ์ด ๋๋ฅผ ๋งค์ฐ ํ๋ค๊ฒ ํ๋ค.๐ฅ
๊ฒฐ๋ก
์ ์ฒด์ ์ผ๋ก Tailwind CSS๋ฅผ ์ฌ์ฉํ๋ค๋ฉด Swiper ๋์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ์ฒํ๊ณ ์ถ๋ค. ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋๋ ๋ชจ๋ฅด๊ฒ ๋ค. (์ ์๊ฒ ์ถ์ฒํด์ฃผ์ธ์..ใ ใ )
๊ฐ์ฅ ํฐ ์ด์ ๋ css๋ฅผ ๋ณ๋๋ก ์์ฑํด์ผ ํ๋ ์ ์ด ๋๋ฌด ๋ถํธํ๋ค. ํ์ฌ ํ๋ก์ ํธ์์๋ ์บ๋ฌ์ ์ ์ง์ ๊ตฌํํด๋ณผ๊น ๊ณ ๋ฏผ ์ค์ด๋ค.
์ถ๊ฐ๋ก Tailwind CSS๋ก ์บ๋ฌ์ ์ ๊ตฌํํ๊ณ ์ถ๋ค๋ฉด, ์๋ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๊ธธ ์ถ์ฒํ๋ค.
Scroll Snap Type - Tailwind CSS
'Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JWT ํ ํฐ ์ด๋์ ์ ์ฅํ๋๊ฒ ์ข์๊น? (1) | 2024.12.16 |
---|---|
SVGR jest ํ ์คํ ์๋ฌ (0) | 2024.12.07 |
React Query์ SSR: ์๋ฒ ์ฌ์ด๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ Hydration ํ์ฉ (1) | 2024.12.07 |
next localFont ์ฌ์ฉ ์ด์ ์ src ์ค์ (0) | 2024.11.30 |
์น ์์ผ๊ณผ Socket.io (1) | 2024.11.25 |