react的setState

100 阅读1分钟

setState(obj||function,callback)

setState是异步的情况:

  1. 在合成事件中是异步的
  2. 在生命周期里是异步的

这里说的异步是其实是批量更新,达到了优化性能的目的

setState是同步的情况:

  1. 在setTimeout和setInterval中
  2. 在原生事件上
  3. 在setState的回调函数上

如果是批量更新的情况,state的更新会被合并,比如说changeValue(1),changeValue(2),先后执行的话,后边的会直接覆盖掉前边的,如果不想被覆盖的话,setState的的第一个参数可以写成function的形式

setState((state)=>{ return counter:state.counter})