美文网首页
2020-03-01

2020-03-01

作者: lynPositive | 来源:发表于2020-03-02 00:00 被阅读0次

react setState

setState()会对一个组件的state对象安排一次更新;当state改变了,改组件就会重新渲染;

state和props之间的区别是什么?

props和state都是普通的js对象。都是用来保存信息的,这些信息可以控制组件的渲染输出,重要的不同点就是:props是传递给组件的(类似于函数的形参),而state是组件内被组件自己管理的(类似于在函数内声明的变量)

setState 是异步的还是同步的?

setSate是异步的,调用setSate后会基于当前的state来计算出新的值,那你应该传递一个函数

解决办法:给setSate传递一个函数,而不是一个对像,就可以确保每次调用都是使用最新版的state

this.setState((state)=>{   return {asynchronous:state.asynchronous+1}  })

传递一个函数可以让你在函数内访问到当前的 state 的值。因为 setState 的调用是分批的,所以你可以链式地进行更新,并确保它们是一个建立在另一个之上的,这样才不会发生冲突

setSate什么时候是异步的?

目前,在事件处理函数内部的setSate是异步的。

如果parent和child在同一个click事件中都调用了setState,这样就可以确保child不会被重新渲染,取而代之的是react会将该state冲洗到浏览器事件结束的时候,再统一地进行更新。这种机制可以在大型应用中得到很好的性能提升

为什么 React 不同步地更新 this.state?

在开始重新渲染之前,React 会有意地进行“等待”,直到所有在组件的事件处理函数内调用的 setState() 完成之后。这样可以通过避免不必要的重新渲染来提升性能。

相关文章

网友评论

      本文标题:2020-03-01

      本文链接:https://www.haomeiwen.com/subject/csedkhtx.html