开发中我们并不能直接通过修改state的值来让界面发生更新:
因为我们修改了state之后,希望React根据最新的State来重新渲染界面,但是这种方式的修改React并不知道数据发生了变
化;
React并没有实现类似于Vue2中的Object.defineProperty或者Vue3中的Proxy的方式来监听数据的变化;
我们必须通过setState来告知React数据已经发生了变化;
疑惑:在组件中并没有实现setState的方法,为什么可以调用呢?
原因很简单,setState方法是从Component中继承过来的。
执行下面的代码:
结果仍然是更新之前的数据,说明setState是异步的,我们并不能在执行完setState之后立马拿到最新的state的结果;
为什么setState设计为异步呢?
setState设计为异步,可以显著