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 @@
+
+ test - {{ swiperSlide.isActive }} - {{ swiperSlide.isNext }}
+
+
+
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(() => {