一、React中Props與state的區(qū)別

1、數(shù)據(jù)來源不同
props是由父組件傳遞給子組件的數(shù)據(jù),可以認(rèn)為是只讀的,子組件不能直接修改props的值。而state是組件內(nèi)部自己管理的數(shù)據(jù),可以由組件自己修改。
2、數(shù)據(jù)類型
props可以傳遞任何JavaScript類型的數(shù)據(jù),包括基本數(shù)據(jù)類型、對(duì)象、數(shù)組等。而state一般是對(duì)象類型。
3、生命周期
組件的props可以在組件的生命周期中任意時(shí)刻被更新,因?yàn)樗怯筛附M件傳遞給子組件的。而state一般在constructor中初始化,在組件的生命周期中被更新,但不能在生命周期外部直接修改。
4、作用范圍
props的作用范圍是整個(gè)組件樹,也就是所有子組件都可以使用父組件傳遞過來的props。而state的作用范圍是組件內(nèi)部,只有當(dāng)前組件可以訪問和修改。
5、優(yōu)化性能
由于props是只讀的,當(dāng)父組件重新渲染時(shí),即使props值沒有發(fā)生改變,子組件也會(huì)重新渲染。而通過使用shouldComponentUpdate等生命周期函數(shù),可以避免不必要的子組件重復(fù)渲染。

京公網(wǎng)安備 11010802030320號(hào)