setState机制总结

1.setState异步更新

  • 不要直接修改state
    调用setState不会直接修改当前的state,而会将改变放入更新队列,队列机制可以高效地批量更新state,减少渲染次数
    直接修改state则不会调用render重新渲染组件,理论上是可以改变state的属性的,但是后面的setState可能会将其覆盖,使用时应该将其作为常量
  • setState的状态更新是异步的
    不能依赖于当前state和props的值,来计算下一个状态,应为状态更新是异步的,并不知道执行时的状态,应该为setState传入改变的回调函数
  • setState不能在shouldComponentUpdate或componentWillUpdate中调用setState,则会造成循环调用,将浏览器的内存占满后崩溃
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容