โ 1. ์ค์น (Vue 2 + Swiper 5.x)
npm install swiper@5.4.5 vue-awesome-swiper@4.1.1
โ
2. Main.js
๊ตฌํ
main.js
์์ ์๋์ ๊ฐ์ด vue-awesome-swiper
๋ฅผ ์ ์ฒด ์ฑ์ ๋ฑ๋กํด์ฃผ์ธ์:
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import VueAwesomeSwiper from "vue-awesome-swiper";
import "swiper/css/swiper.css"; // swiper 5์ฉ css
import "./assets/base.scss";
Vue.use(VueAwesomeSwiper);
Vue.config.productionTip = false;
new Vue({
router,
store,
render: (h) => h(App),
}).$mount("#app");
โ
3. MainSlide.vue
๊ตฌํ
<template>
<div class="main-slide">
<swiper :options="swiperOption" class="swiper-container">
<swiper-slide v-for="(item, i) in slides" :key="i">
<img :src="item.img" :alt="item.alt" class="slide-img" />
</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
<div class="swiper-button-prev" slot="button-prev"></div>
<div class="swiper-button-next" slot="button-next"></div>
</swiper>
</div>
</template>
<script>
export default {
name: "MainSlide",
data() {
return {
slides: [
{ img: "https://img.megagong.net/m/2025/0724_pass/gong/pass_gong.png", alt: "๋ฐฐ๋1" },
{ img: "https://img.megagong.net/m/2025/0724_pass/tech/pass_tech.png", alt: "๋ฐฐ๋2" },
{ img: "https://img.megagong.net/m/2025/0724_pass/army/pass_army.png", alt: "๋ฐฐ๋3" },
],
swiperOption: {
loop: true,
autoplay: {
delay: 3000,
},
pagination: {
el: ".swiper-pagination",
clickable: true,
},
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
},
};
},
};
</script>
<style>
.main-slide {
width: 790px;
}
</style>
๐ฌ ๋๊ธ
โป ๋ก๊ทธ์ธ ํ ๋๊ธ์ ์์ฑํ ์ ์์ต๋๋ค.