读一篇 preact 源码解读的文章

·

1 min read

preact 源码阅读

render

浅复制

setState,nextState设置为新的值,并且将callback放到 _stateCallbacks 中

    if (this._vnode) {
        if (callback) {
            this._stateCallbacks.push(callback);
        }
        enqueueRender(this);
    }

debounce方法,保证在多个状态更新时,只触发一次重绘

_renderCallbacks 在render之后执行

diff算法

先比较vnode类型,再比较属性,再比较子元素