读一篇 preact 源码解读的文章
render
浅复制
setState,nextState设置为新的值,并且将callback放到 _stateCallbacks 中
if (this._vnode) {
if (callback) {
this._stateCallbacks.push(callback);
}
enqueueRender(this);
}
debounce方法,保证在多个状态更新时,只触发一次重绘
_renderCallbacks 在render之后执行
diff算法
先比较vnode类型,再比较属性,再比较子元素