nuxt.js使用swiper

1.安装swiper

npm install vue-awesome-swiper --save

2.在plugins下新建vue-swiper.js文件

import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper/dist/ssr'

Vue.use(VueAwesomeSwiper)

3.在nuxt.config.js中引入

//其他代码

css:[
  { src: "swiper/dist/css/swiper.css" }
],
plugins:[
  { src: "~/plugins/vue-swiper.js", ssr: false },
]

//其他代码

4.在页面中使用举例

<template>
  <!-- You can find this swiper instance object in current component by the "mySwiper"  -->
  <div v-swiper:mySwiper="swiperOption">
    <div class="swiper-wrapper">
      <div class="swiper-slide" v-for="banner in banners">
        <img :src="banner">
      </div>
    </div>
    <div class="swiper-pagination swiper-pagination-bullets"></div>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        banners: [
          '/1.jpg',
          '/2.jpg',
          '/3.jpg'
        ],
        swiperOption: {
          loop: true,
          slidesPerView: 'auto',
          centeredSlides: true,
          spaceBetween: 30,
          pagination: {
            el: '.swiper-pagination',
            dynamicBullets: true
          },
          on: {
            slideChange() {
              console.log('onSlideChangeEnd', this);
            },
            tap() {
              console.log('onTap', this);
            }
          }
        }
      }
    },
    mounted() {
      console.log('app init', this)
      setTimeout(() => {
        this.banners.push('/5.jpg')
        console.log('banners update')
      }, 3000)
      console.log(
        'This is current swiper instance object', this.mySwiper, 
        'I will slideTo banners 3')
       this.mySwiper.slideTo(3)
    }
  }
</script>


<style lang="scss" scoped>
  .my-swiper {
    height: 300px;
    width: 100%;
    .swiper-slide {
      text-align: center;
      font-size: 38px;
      font-weight: 700;
      background-color: #eee;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .swiper-pagination {
      > .swiper-pagination-bullet {
        background-color: red;
      }
    }
  }
</style>

参考:https://www.npmjs.com/package/vue-awesome-swiper

Nuxt.js 3.x 中,Swiper 是一个流行的轮播库,而 Swiper Pagination 是它的组件之一,用于显示轮播的页码指示器。要在项目中使用 Swiper 和其 Pagination 功能,你需要按照以下步骤操作: 1. **安装依赖**: 首先,确保已安装了 `vue-awesome-swiper` 这个插件,它包含了 Swiper 的 Vue 实现和一些常见组件,包括 Pagination。你可以使用 npm 或 yarn 安装: ``` npm install vue-awesome-swiper @nuxtjs/firebase # 或者 yarn add vue-awesome-swiper @nuxtjs/firebase ``` 2. **引入并配置 Swiper**: 在 `nuxt.config.js` 或者 `main.js` 文件中,添加 Swiper 的全局导入,并在需要的地方使用它: ```javascript import { createApp } from 'vue' import { swiper, swiperSlide } from 'vue-awesome-swiper' import { defineComponent } from 'vue' // 如果在 nuxt.config.js 中 export default { components: { Swiper, SwiperSlide, }, } // 如果在 main.js 中 const app = createApp(App) app.use(swiper) app.component('swiper-slide', swiperSlide) // 然后在模板中引用 Swiper 组件 <template> <div> <swiper :options="swiperOptions"> <!-- slides go here --> <swiper-slide v-for="(slide, index) in slides" :key="index"> Slide {{ index + 1 }} </swiper-slide> <!-- Add the pagination component --> <swiper-pagination /> </swiper> </div> </template> // 在 data 或 computed 中设置 swiperOptions 对象 export default { data() { return { swiperOptions: { loop: true, // Enable infinite scrolling pagination: { el: '.swiper-pagination', }, }, slides: [], // Array of slide content } } } ``` 3. **创建滑动内容**: 将实际的滑动内容添加到 `<swiper-slide>` 元素中,比如从 API 获取数据填充。 4. **样式调整**: 根据需要调整 `.swiper-pagination` 的样式,使其适应你的设计。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值