diff --git a/.gitignore b/.gitignore index dae6a0a57..7221a2d5c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ cypress/screenshots .env.development.local .env.test.local .env.production.local +.eslintcache diff --git a/playground/vue/App.vue b/playground/vue/App.vue index d5578bfea..3b1182dc6 100644 --- a/playground/vue/App.vue +++ b/playground/vue/App.vue @@ -9,7 +9,7 @@ :pagination="{ clickable: true }" :modules="modules" > - Slide 1 + Slide 1 Slide 2 Slide 3 Slide 4 @@ -27,11 +27,13 @@ import { Navigation, Pagination, Scrollbar, A11y } from 'swiper'; // eslint-disable-next-line import { Swiper, SwiperSlide } from 'swiper/vue/swiper-vue.js'; +import innerComp from './innerComp.vue'; export default { components: { Swiper, SwiperSlide, + innerComp, }, setup() { diff --git a/playground/vue/innerComp.vue b/playground/vue/innerComp.vue new file mode 100644 index 000000000..39010f0c6 --- /dev/null +++ b/playground/vue/innerComp.vue @@ -0,0 +1,19 @@ + + diff --git a/src/vue/swiper-slide.js b/src/vue/swiper-slide.js index 1ab9c317f..b236432cc 100644 --- a/src/vue/swiper-slide.js +++ b/src/vue/swiper-slide.js @@ -1,4 +1,13 @@ -import { h, ref, onMounted, onUpdated, onBeforeUpdate, computed, onBeforeUnmount } from 'vue'; +import { + h, + ref, + onMounted, + onUpdated, + onBeforeUpdate, + computed, + onBeforeUnmount, + provide, +} from 'vue'; import { uniqueClasses } from './utils.js'; const SwiperSlide = { @@ -66,6 +75,7 @@ const SwiperSlide = { slideClasses.value.indexOf('swiper-slide-next') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-next') >= 0, })); + provide('swiperSlide', slideData); return () => { return h( props.tag, diff --git a/src/vue/swiper.js b/src/vue/swiper.js index 3df9215cd..34aa0a0b0 100644 --- a/src/vue/swiper.js +++ b/src/vue/swiper.js @@ -1,4 +1,4 @@ -import { h, ref, onMounted, onUpdated, onBeforeUnmount, watch, nextTick } from 'vue'; +import { h, ref, onMounted, onUpdated, onBeforeUnmount, watch, nextTick, provide } from 'vue'; import { getParams } from './get-params.js'; import { initSwiper, mountSwiper } from './init-swiper.js'; import { @@ -319,6 +319,8 @@ const Swiper = { breakpointChanged.value = false; }); + provide('swiper', swiperRef); + // update on virtual update watch(virtualData, () => { nextTick(() => {