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