亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我如何在vue js中使用swiper.js

我如何在vue js中使用swiper.js

倚天杖 2023-07-20 10:11:57
我正在使用yarn add swiper安裝 swiper.js這是我的代碼,但它沒有顯示任何幻燈片或其他內容<swiper   :slides-per-view="3"   :space-between="50"    @swiper="onSwiper"    @slideChange="onSlideChange">    <swiper-slide>Slide 1</swiper-slide>    <swiper-slide>Slide 2</swiper-slide>    <swiper-slide>Slide 3</swiper-slide> </swiper>錯誤是這樣的[Vue warn]: Failed to mount component: template or render function not defined.found in---> <Swiper>       <DetailProduct>         <App> at src/App.vue           <Root>這是我對 package.json 的依賴"dependencies": {    "bootstrap": "^4.5.3",    "bootstrap-vue": "^2.18.1",    "core-js": "^3.7.0",    "node-sass": "^4.14.1",    "numeral": "^2.0.6",    "sass-loader": "^10.0.5",    "swiper": "^6.3.5",    "vue": "^2.6.11",    "vue-router": "^3.4.9",    "vue-toast-notification": "^0.5.4",    "vuex": "^3.4.0"  }我如何在 vue.js 中使用 swiper.js?希望你能幫助我謝謝:)
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

Swiper 網站上的 Vue 模塊表示“?Swiper Vue.js 組件僅與新的 Vue.js 版本 3 兼容”。參考

package.json顯示你的Vue版本是2.6.11

盡管如此,還是可以選擇使用Swiper。vue-awesome-swiper為我工作。


查看完整回答
反對 回復 2023-07-20
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

您在組件中導入了 swiper 嗎?


// Import Swiper Vue.js components

import { Swiper, SwiperSlide } from 'swiper/vue';


export default {

    components: {

      Swiper,

      SwiperSlide,

    },

    ...

}


查看完整回答
反對 回復 2023-07-20
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

這似乎有效(在 Nuxt v2.14 中),但我不認為這是推薦的方式


家長


<Swiper

  :options="carouselOptions"

 />

孩子


<template>

  <div v-if="options" ref="swiper" class="carousel-hero carousel-hero--is-hidden swiper-container">

    <div class="carousel-hero-wrapper swiper-wrapper">

      <div

        v-for="n in 5"

        :key="n"

        class="carousel-hero__slide slide swiper-slide"

      >

        <img

          src="https://via.placeholder.com/1680x720"

          class="slide__image"

          style="max-height: 100px;"

        />

        <div class="slide__content">

          <h4 class="slide__heading">Heading {{ n }}</h4>

          <p class="slide__description">Description {{ n }}</p>

          <a

            href="#"

            class="slide__button"

          >

          Learn more {{ n }}

          </a>

        </div>

      </div>

    </div>

    <div class="swiper-pagination"></div>

    <div class="swiper-button-prev"></div>

    <div class="swiper-button-next"></div>

    <div class="swiper-scrollbar"></div>

  </div>

</template>


<script>

import Swiper, { Navigation, Pagination } from 'swiper';

Swiper.use([Navigation, Pagination]);

import 'swiper/swiper-bundle.css';


export default {

  name: 'Swiper',

  props: {

    options: {

      type: Object,

      default: () => {

        return {

          slidesPerView: 1

        }

      }

    }

  },

  data() {

    return {

      swiper: null,

    }

  },

  created() {

    console.log('Swiper', Swiper);

  },

  mounted() {

    let vm = this;


    if (this.options && vm.$refs.swiper !== 'undefined') {

    // or if (this.$el && this.options) {


      vm.$refs.swiper.classList.remove('carousel-hero--is-hidden');


      this.swiper = new Swiper(vm.$refs.swiper, {

      // or this.swiper = new Swiper(this.$el, {


        slidesPerView: this.options.slidesPerView,

        navigation: {

          nextEl: '.swiper-button-next',

          prevEl: '.swiper-button-prev',

        },


        on: {

          init: function () {

            console.log('swiper initialized');

          },

          resize: function () {

            console.log('resize');

          }

        }

      });

    }

  },

  methods: {


  }

};

</script>


<style scoped>

  .carousel-hero {

    &--is-hidden {

      display: none;

    }


    &-container {

      @include make-container();

      @include default-max-widths();

      max-height: 200px !important;

      overflow: hidden;

    }


    &-row {

      @include make-row();

      padding: rem(25px 0);

      justify-content: center;

    }


    &-column {

      @include make-col-ready();

    }


    border: 10px solid red;


    &-wrapper {


    }


    &__slide {


    }


    .slide {

      &__image {

        @include img-fluid();

      }


      &__content {

        border: 1px solid blue;

        position: absolute;

        top: 50%;

        left: 50%;

        transform: translate(-50%, -50%);

        width: 100%;

        height: 100%;


        @include media-breakpoint-up(lg) {

          max-width: 85%;

          max-height: 85%;

        }

      }


      &__heading {

        font-size: rem(48px);

      }


      &__description {


      }


      &__button {


      }

    }


  }

</style>



查看完整回答
反對 回復 2023-07-20
  • 3 回答
  • 0 關注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號