learn React in deep by coding todoList VDOM model complex component update state domdiff - textNode domdiff - keyed children domdiff - LCS LIS benchmark transaction - base transaction - multiple