深入理解React State 原理.docx

深入理解React?State?原理

目录问题:setState到底是同步还是异步的?类组件statesetState原理揭秘函数组件state

问题:setState到底是同步还是异步的?

如果对React底层有一定了解,可以回答出batchUpdate批量更新概念,以及批量更新被打破的条件。

答案:有时是同步,有时是异步。

在合成事件和生命周期函数里是异步的在原生事件和setTimeout、promise里是同步的

造成setState的异步并不是由内部的异步代码引起的,在本身的执行过程中时同步的,但是合成事件和生命周期函数的调用顺序在更新之前,导致在内部不能直接得到更新后的值,可以用第二个参数callback来获取。

具体解释:可参考setState的执行过程

类组件state

setState(obj,callback)

第一个参数:当obj为一个对象,则为即将合并的state;如果obj是一个函数,那么当前组件的state和props将作为参数,返回值用于合并新的state。第二个参数callback:callback为一个函数,函数执行上下文中可以获取当前setState更新后的最新state的值,可以作为依赖state变化

文档评论(0)

1亿VIP精品文档

相关文档