image.pngimage.png

    image.png

    1. function _update(vnode){
    2. // vnode是新虚拟dom树,而this._vnode是旧的
    3. var oldVnode = this._vnode
    4. this._vnode = vnode
    5. // 对比的目的:更新真实DOM
    6. if(!oldVnode){// 没有旧的虚拟dom树,即第一次挂载时
    7. this.__patch__(this.$el, vnode)
    8. }else{// 更新时
    9. }
    10. }

    没有key的时候:

    1. 多个input的内容没变化的bug
    2. unshift向最前面加一个数据的时候,不会复用旧节点,直接新建并删除所有旧节点,效率低