@awpman

Destroy/Init swiper slide на vue в зависимости от ширины экрана, как правильно?

Необходимо подключить слайдер только на мобильных разрешениях ниже 768px.
<template>
      <swiper ref="mySwiper" :options="swiperOption">
        <swiper-slide>
          <div class="slideItem"></div>
        </swiper-slide>
      </swiper>
</template>

<script>
import { Swiper, SwiperSlide, directive } from 'vue-awesome-swiper'
import 'swiper/css/swiper.css'

export default {

	name: 'SwiperCarousel',

	components: {
		Swiper,
		SwiperSlide
	},

	data() {
		return {
			swiperOption: {
				// direction: 'vertical',
			}
		}
	},
}
</script>
  • Вопрос задан
  • 1493 просмотра
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347
Crazy on performance...
Как-то так можно:
<template>
      <swiper v-if="isShown" ref="mySwiper" :options="swiperOption">
        <swiper-slide>
          <div class="slideItem"></div>
        </swiper-slide>
      </swiper>
</template>

import { Swiper, SwiperSlide, directive } from 'vue-awesome-swiper'
import 'swiper/css/swiper.css'

export default {

  name: 'SwiperCarousel',

  components: {
    Swiper,
    SwiperSlide
  },

  data() {
    return {
      isShown: false,
      swiperOption: {
        // direction: 'vertical',
      }
    }
  },
  mounted() {
    const media = window.matchMedia('(max-width:768px)');
    const listener = e => this.isShown = e.matches;
    listener(media);
    media.addListener(listener);
    this.$once('hook:beforeDestroy', () => media.removeListener(listener));
  }
}

https://developer.mozilla.org/ru/docs/Web/API/Wind...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы