有狀態元件和無狀態元件

2021-09-05 11:23:55 字數 594 閱讀 4817

react 基礎知識:有狀態元件和無狀態元件

注意:使用class關鍵字建立的元件,有自己的私有資料(this.state)和生命週期函式;

注意:使用function建立的元件,只有props,沒有自己的私有資料和生命週期函式;

有狀態元件:用class關鍵字建立出來的元件(用的最多)

無狀態元件:用建構函式建立出來的元件(用的不多)

什麼情況下使用有狀態元件?什麼情況下使用有狀態元件?

如果乙個元件需要有自己的私有資料,則推薦使用:class建立的有狀態元件;

如果乙個元件不需要有自己的私有資料,則推薦使用:無狀態元件;

react官方說:無狀態元件,由於沒有自己的state和生命週期函式,所以執行效率高

有狀態元件和無狀態元件之間的本質區別就是:有無state屬性和生命週期函式!

元件中的props和state/data之間的區別

props中的資料都是外界傳遞過來的;

state/data中的資料,都是元件私有的;(通過ajax獲取回來的資料,一般都是私有資料);

props中的資料都是唯讀的;不能重新賦值;

state/data中的資料,都是可讀可寫的;

react無狀態元件

乙個普通元件只有render函式的時候,我們完全可以通過乙個無狀態元件來替換掉這個普通元件。無狀態元件相對於這個普通函式的優勢如下 無狀態元件的效能比較高。因為無狀態元件就是乙個函式。而普通元件是js裡面的乙個類,而這個類生成的物件裡還有生命週期函式,他執行起來既要執行生命週期函式,還要執行rend...

react 中的無狀態元件

其實 有一些 元件 不需要我們做任何 邏輯處理 和 狀態管理 僅僅只是用來展示 ui介面的話 這樣的元件 叫做無狀態元件 舉乙個很簡單的例子 而且無狀態元件 可以直接有乙個函式 封裝 不用 class 繼承component 同時無狀態元件執行起來 效能也比較好 事件 和 資料 都是由父元件傳遞過來...

StatefulWidget 有狀態元件

在 flutter 中自定義元件其實就是乙個類,這個類需要繼承 statelesswidget statefulwidget 在使用statefulwidget前,先看一下在statelesswidget中,點選按鈕,改變資料後的效果 import package flutter material....