需要理解的是,props是一個父組件傳遞給子組件的數(shù)據(jù)流,這個數(shù)據(jù)流可以一直傳遞到子孫組件。而state代表的是一個組件內(nèi)部自身的狀態(tài)(可以是父組件、子孫組件)。改變一個組件自身狀態(tài),從語義上來說,就是這個組件內(nèi)部已經(jīng)發(fā)生變化,有可能需要對此組件以及組件所包含的子孫組件進(jìn)行重渲染。而props是父組件傳遞的參數(shù),可以被用于顯示內(nèi)容,或者用于此組件自身狀態(tài)的設(shè)置(部分props可以用來設(shè)置組件的state),不僅僅是組件內(nèi)部state改變才會導(dǎo)致重渲染,父組件傳遞的props發(fā)生變化,也會執(zhí)行。既然兩者的變化都有可能導(dǎo)致組件重渲染,所以只有理解pros與state的意義,才能很好地決定到底什么時候用props或state。
官方指導(dǎo)有說,props放初始化數(shù)據(jù),一直不變的,state就是放要變的。
State 應(yīng)該包括那些可能被組件的事件處理器改變并觸發(fā)用戶界面更新的數(shù)據(jù),因為組件本身不能修改自己的 props。