-
useState lazy initializationReact 2022. 8. 20. 18:26
useStateは初期レンダリングでのみ実行される。
以下の例題は、初期にcount状態変数が0になり、ボタンイベントが発生するたびに、関数本文が実行され、その中のすべてのコードも実行される。 useStateもレンダリング度に実行されるが、結局は無視される。function Counter() { const initialState = 0 const [count, setCount] = React.useState(initialState) return <button onClick={increment}>{count}</button> }
しかし、二番目のように初期の計算にかなり多くの費用が発生する場合なら?! I/O出力に時間がかかる場合は??
この時に導入できるのがuseState(関数)、つまり関数を入れて初期化価を定めることがuseState lazy initializationだ。初期レンダリング以後には無視される!!const initialState = calculateSomethingExpensive(props) const [count, setCount] = React.useState(initialState)
const getInitialState = () => calculateSomethingExpensive(prop) const [count, setCount] = React.useState(getInitialState)
https://kentcdodds.com/blog/use-state-lazy-initialization-and-function-updates
'React' 카테고리의 다른 글
jsx elementが効かない理由。 (0) 2022.09.19 hook - flow (0) 2022.09.18 custom hook (0) 2022.05.21 useEffectとは (0) 2022.05.07 HOOK- useState (0) 2022.05.04