From 97ed6e86caa803dae8bd23d852b300621a273fdd Mon Sep 17 00:00:00 2001 From: Joel Drake Date: Wed, 26 Nov 2025 22:17:41 +0100 Subject: [PATCH 1/2] feat: add emitUpdate prop and update event to DynamicScroller" --- .../src/components/DynamicScroller.vue | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/vue-virtual-scroller/src/components/DynamicScroller.vue b/packages/vue-virtual-scroller/src/components/DynamicScroller.vue index eeb4977d..ff3cbd04 100644 --- a/packages/vue-virtual-scroller/src/components/DynamicScroller.vue +++ b/packages/vue-virtual-scroller/src/components/DynamicScroller.vue @@ -7,7 +7,10 @@ key-field="id" :list-tag="listTag" :item-tag="itemTag" + :emit-update="emitUpdate" + :skip-hover="skipHover" v-bind="$attrs" + @update="onUpdate" @resize="onScrollerResize" @visible="onScrollerVisible" > @@ -89,6 +92,16 @@ export default { props: { ...props, + emitUpdate: { + type: Boolean, + default: false, + }, + + skipHover: { + type: Boolean, + default: false, + }, + minItemSize: { type: [Number, String], required: true, @@ -96,6 +109,7 @@ export default { }, emits: [ + 'update', 'resize', 'visible', ], @@ -197,6 +211,10 @@ export default { }, methods: { + onUpdate (startIndex, endIndex, visibleStartIndex, visibleEndIndex) { + this.$emit('update', startIndex, endIndex, visibleStartIndex, visibleEndIndex) + }, + onScrollerResize () { const scroller = this.$refs.scroller if (scroller) { From 9a8c64ae398f43701f3dabd0af819c0ef84bdd36 Mon Sep 17 00:00:00 2001 From: Joel Drake Date: Wed, 26 Nov 2025 22:28:50 +0100 Subject: [PATCH 2/2] fix/re-emit from tamplate --- .../vue-virtual-scroller/src/components/DynamicScroller.vue | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/vue-virtual-scroller/src/components/DynamicScroller.vue b/packages/vue-virtual-scroller/src/components/DynamicScroller.vue index ff3cbd04..ee141afd 100644 --- a/packages/vue-virtual-scroller/src/components/DynamicScroller.vue +++ b/packages/vue-virtual-scroller/src/components/DynamicScroller.vue @@ -10,7 +10,7 @@ :emit-update="emitUpdate" :skip-hover="skipHover" v-bind="$attrs" - @update="onUpdate" + @update="$emit('update', ...arguments)" @resize="onScrollerResize" @visible="onScrollerVisible" > @@ -211,10 +211,6 @@ export default { }, methods: { - onUpdate (startIndex, endIndex, visibleStartIndex, visibleEndIndex) { - this.$emit('update', startIndex, endIndex, visibleStartIndex, visibleEndIndex) - }, - onScrollerResize () { const scroller = this.$refs.scroller if (scroller) {