Improvements to logic concerning brand-new and just-destroyed DOM elements.
One problem with the original implementation is it didn't handle items entering/leaving the DOM very gracefully. Items on enter would animate, often from the wrong position. Items on leave could throw errors.
I refactored the on-update logic to skip animation on a specific child if that child:
- Was stationary (untracked)
- Was brand new (no history)
- Was just destroyed.
I also made some small improvements, such as batching all .setState requests instead of making several individual ones.