千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  技术干货  >  说说setState

说说setState

来源:千锋教育
发布人:lxx
时间: 2023-03-30 15:03:53

  setState是react类组件更新自身状态的唯一方法,因为react作为纯视图框架,不像vue那样对数据都进行了数据劫持绑定在实例上,当数据更新的时候组件实例对应的watcher会执行,从而引起后续re-render的过程。react只能主动调用setState方法来通知组件进行状态的更新以后虚拟dom的更新、对比、re-render。

千锋教育

  setState可以传入一个state对象,采用的是批量更新的方式,并且多个setState会合并,提高更新性能,setState也可以传入一个函数,接收到当前的状态返回出要批量更新的state对象。

  setState一般情况下是异步的,也就是说,执行setState之后, 不会马上进行render,并且this.state上的状态也不会马上更新,会等到下一次事件循环中才会去执行。

  setState在一些react-api外的方法中可能会是同步的,比如setTimeout、原生dom事件中。

  componentDidMount() {

  setTimeout(() => {

  this.setState({ count: 1 })

  console.log(this.state.count)

  }, 1000)

  document.querySelector('#btn').onclick= (e) => {

  this.setState({ count: 1 })

  console.log(this.state.count)

  }

  }复制代码

  最近的18+版本已经修复了这个问题, 所有情况下都是异步的

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

说说setState

2023-03-30

类的加载机制是什么

2023-03-21

如何定义Java变量?

2023-03-14

最新文章NEW

java实现多线程的几种方式

2023-03-21

java编程spring框架的作用

2023-03-21

什么是java中的进制

2023-03-17

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>