​​React​AbortController,fetch,StrictMode,TypeScript,useEffect

Thumbnail of post image 072

​

useEffectでfetchすると、検索語を速く打ち替えたときに古い応答が後から届き、表示を上書きすることがあります。片付け関数でAbortControllerのabort()を呼ぶと、古いリクエストが中止され、入力どおりの結果が残 ...

​​React​Playwright,TypeScript,useEffect,useRef,useState

Thumbnail of post image 143

Reactでstateを更新した直後の行では、画面(DOM)はまだ古いままです。flushSyncで包むと、次の行に進む前に画面が更新されます。スクロールと印刷の例で確かめ、エフェクトの中で呼んだときの警告と描画の回数も調べました。

​​React​TypeScript,useEffect,useMemo,useReducer,useState

Thumbnail of post image 109

​

StrictModeで包むと、開発中だけ一部の関数が2回呼ばれます。コンポーネントの本体やuseStateの初期化関数、reducer、マウント時のエフェクトなどは2回で、イベントハンドラは1回でした。一部だけ包んだときや本番用のビル ...

​​React​Playwright,TypeScript,useEffect,useLayoutEffect

Thumbnail of post image 155

​

useLayoutEffectは、ブラウザが画面を描く前に動きます。高さを測って位置を決めるツールチップを両方のフックで作り、Chromiumで描かれたフレームを記録して、useEffectでだけ出たちらつきと、その防ぎ方を紹介します ...

​​React​TypeScript,useEffect,useState,フォーム

Thumbnail of post image 045

​

Reactは、同じ場所に描画されたコンポーネントのstateを引き継ぎます。keyに相手のIDなどを渡すと、値が変わったときにコンポーネントを作り直し、子のstateまで初めに戻せます。エフェクトで空にする書き方との違いや、keyに使 ...

​​React​startTransition,TypeScript,useEffect,useSyncExternalStore,サーバーレンダリング

Thumbnail of post image 008

​

React の外にあるストアを useSyncExternalStore で読むと、Transition の描画中にストアが変わっても、画面の値がそろいます。useEffect で購読する書き方と比べ、3つの引数の落とし穴も確かめまし ...

​​React​Activity,TypeScript,useEffect,useLayoutEffect

Thumbnail of post image 104

​

条件付きレンダリングの代わりにで隠すと、stateも入力欄の中身も残ったまま、エフェクトだけが片付けられます。2つの書き方を同じ手順で動かして比べ、隠しても止まらないへの対処も確かめました。

​​React​ESLint,TypeScript,useEffect,useEffectEvent

Thumbnail of post image 115

​

useEffectEventを使うと、エフェクトの中で最新のpropsやstateを読みながら、その値が変わってもエフェクトをやり直さずに済みます。依存配列に入れる、lintを黙らせる、useEffectEventを使う、の3通りで、 ...

カテゴリー