File tree Expand file tree Collapse file tree 1 file changed +23
-15
lines changed
packages/vue-virtual-scroller/src/components Expand file tree Collapse file tree 1 file changed +23
-15
lines changed Original file line number Diff line number Diff line change @@ -330,7 +330,6 @@ export default {
330330 if (! fake) {
331331 view .nr .used = false
332332 view .position = - 9999
333- this .$_views .delete (view .nr .key )
334333 }
335334 },
336335
@@ -534,12 +533,10 @@ export default {
534533 }
535534
536535 let unusedPool = unusedViews .get (type)
536+ let newlyUsedView = false
537537
538538 // No view assigned to item
539539 if (! view) {
540- if (i === items .length - 1 ) this .$emit (' scroll-end' )
541- if (i === 0 ) this .$emit (' scroll-start' )
542-
543540 type = item[typeField]
544541
545542 if (continuous) {
@@ -564,22 +561,33 @@ export default {
564561 view = unusedPool[v]
565562 unusedIndex .set (type, v + 1 )
566563 }
564+
565+ // Assign view to item
566+ views .delete (view .nr .key )
567+ view .item = item
568+ view .nr .used = true
569+ view .nr .index = i
570+ view .nr .key = key
571+ view .nr .type = type
572+ views .set (key, view)
573+
574+ newlyUsedView = true
567575 } else {
568576 // View already assigned to item
569- if (unusedPool) {
570- const index = unusedPool .indexOf (view)
571- if (index !== - 1 ) unusedPool .splice (index, 1 )
577+ if (! view .nr .used ) {
578+ view .nr .used = true
579+ newlyUsedView = true
580+ if (unusedPool) {
581+ const index = unusedPool .indexOf (view)
582+ if (index !== - 1 ) unusedPool .splice (index, 1 )
583+ }
572584 }
573585 }
574586
575- // Assign view to item
576- views .delete (view .nr .key )
577- view .item = item
578- view .nr .used = true
579- view .nr .index = i
580- view .nr .key = key
581- view .nr .type = type
582- views .set (key, view)
587+ if (newlyUsedView) {
588+ if (i === items .length - 1 ) this .$emit (' scroll-end' )
589+ if (i === 0 ) this .$emit (' scroll-start' )
590+ }
583591
584592 // Update position
585593 if (itemSize === null ) {
You can’t perform that action at this time.
0 commit comments