1. props是组件对外的接口,用于组件之间的传值,props在组件内部是不可修改,可以看作只读属性。
2. state可以看作组件的私有属性,用于组件内部的数据传递。
3. state可在组件内进行修改,state初始化的地方是在constructor()构建函数中,组件内修改必须使用setState()函数。
4. 说到setState()不得不再啰嗦几句。react的面试面试官经常会问setState()是同步还是异步?既然这么问了那当然是异步啦。
5. setState是异步更新,同步执行,因为react中会将多个setState合并在一起处理,从而提升程序的性能,这就是react高明的其中一点。
6. 所以在编写程序时我们不能依赖于当前的state去计算下一个state。因为异步所以this.state不一定是最新的组件属性值。
7. 对于以上问题是否有解决办法?那肯定有呀。
8. 既然是异步,那肯定就有回调函数,说到回调函数相比大家都知道解决办法啦。
9. 那setState()函数的回调函数在哪呢,这个大家应该都知道,但是我就是想写。
10. setState()函数有两个参数,第一个我就不赘述了,第二个就是它的回调啦。
this.setState({count:this.state.count+1}, ()=>{ console.log("count ",this.state.count); });