[英]Difference between useState and useEffect
我使用 useState 而不是 useEffect,它可以很好地顯示數據(為什么?)
React.useState(() =>getMovies(), [])
注意:我添加了 console.log 並且得到了相同的結果
當 function 被傳遞給useState
時,這是向 React 發出使用惰性初始化的信號——function 將僅在組件掛載時被調用以計算初始值。
如果可以同步計算/檢索要放入 state 的值,這可能是最好的設計模式 - 它很短,不需要您稍后區分 state 值是未定義的還是填充的。
const [stateValue, setStateValue] = useState(calculateExpensiveInitialStateValue);
使用useEffect
的時間是當無法同步計算要填充的值時,在這種情況下,最好的方法是同時使用useState
(用於狀態)和useEffect
(表示您要運行 function 來檢索state 值只有一次)。
雖然理論上你可以有一條線就像
React.useState(() =>getMovies(), [])
這很令人困惑,因為
useState
不接受第二個參數依賴數組 useEffect
更適合該任務,因為它沒有返回值(不像useState
),而且更靈活,因為它確實接受依賴項數組。 useEffect
更清楚地向代碼讀者指示“此回調應僅在依賴項數組更改時運行”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.