Reactで、ファイルのダウンロードの進み具合を表示する方法
ダウンロード中にプログレスバーで進み具合を見せたいときに使える方法です。fetch の本文を getReader() で少しずつ読み、受け取った量と Content-Length から進み具合を progress 要素に表示します。C ...
Reactで、複数のファイルをZIPにまとめてダウンロードする方法
選んだ複数のファイルを、ブラウザの中で1つの ZIP にまとめて保存させる方法です。JSZip でフォルダ分けして ZIP を作り、進み具合を表示します。既定では圧縮されないこと、同じ名前が上書きされること、取得の失敗への備えも確かめ ...
ReactでZodを使い、APIの応答を実行時に確かめる方法
Reactのアプリで、APIの応答をバリデーションしたいときに使える方法です。Zodのスキーマで応答をsafeParseしてから使う関数を作り、形の違う応答をコンポーネントでエラーとして表示する流れを、検証環境で確かめました。 ...
ReactのuseEffectでのfetchの競合をAbortControllerで防ぐ方法
useEffectでfetchすると、検索語を速く打ち替えたときに古い応答が後から届き、表示を上書きすることがあります。片付け関数でAbortControllerのabort()を呼ぶと、古いリクエストが中止され、入力どおりの結果が残 ...
