调用setState之后发生了什么
调用setState函数之后,React会将传入的参数对象与组件当前的状态合并,然后触发所谓的调和过程(在每次数据更新之后,react会重新调用render渲染出新的组件结构,新的结构应用到dom中的过程,就称为调和)。经过调和过程,react会以相对高效的方式根据新的状态构建react元素树,并且着手重新渲染整个UI界面,在react得到元素树之后,react会自动计算出新的树与老树的节点差异,然后根据差异对界面进行最小化重渲染。在差异计算算法中,react能够想对精确地知道哪些位置发生了改变以及如何改变,这就保证了按需更新,而不是全局重新渲染。
react中元素和组件的区别
React 中有三种构建组件的方式。React.createClass()、ES6 class和无状态函数。
在什么情况下使用class Component而不是无状态函数
在组件需要包含内部状态或者使用到生命周期函数的时候使用 Class Component ,否则使用函数式组件。
组件是由元素构成的。元素的数据结构是普通对象,而组件的数据结构是类或纯函数。