fixes issue #348: perf optimization during diffing algo to avoid calling addVNodes and removeVNodes when there is nothing to do.

pull/351/head
Caridy 7 years ago
parent 2271b7bdf1
commit b7f90368ee

@ -240,11 +240,13 @@ export function init(modules: Array<Partial<Module>>, domApi?: DOMAPI) {
}
}
}
if (oldStartIdx > oldEndIdx) {
before = newCh[newEndIdx+1] == null ? null : newCh[newEndIdx+1].elm;
addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
} else if (newStartIdx > newEndIdx) {
removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {
if (oldStartIdx > oldEndIdx) {
before = newCh[newEndIdx+1] == null ? null : newCh[newEndIdx+1].elm;
addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
} else {
removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
}
}
}

Loading…
Cancel
Save