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);
});
