Run watcher post DOM update in Vue adapter #716
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This solves #715
According to the Vue docs; watchers will run their effects after state updates but before DOM updates. The
ref
attribute performs the same way which is why some users discovered they need to wrap theirmeasureElement
calls withnextTick
in order to measure elements in a post update state (#619).Currently the vue adapter will update state pre DOM update which causes an infinite loop if the estimated size of an element doesn't exactly match the measured size. Simply running the effect post DOM update will ensure that the elements are measured and taken into account before virtualizer updates its state.