​​React​Playwright,TypeScript,useActionState,useFormStatus,useRef,フォーム

Thumbnail of post image 065

送信ボタンを続けて押しても、注文が1件だけ作られるようにする方法です。送信中にボタンを無効にする書き方、refで止める書き方、formのactionの場合と、サーバー側でIdempotency-Keyを使う方法を確かめました。 ...

​​React​createPortal,Playwright,TypeScript,useEffectEvent,カスタムフック

Thumbnail of post image 035

​

メニューやドロップダウンを、外側をクリックしたら閉じるカスタムフックを TypeScript で作りました。開くボタンを内側に入れる理由、click ではなく pointerdown を待つ理由、ポータルの中の扱い、タッチ操作での動き ...

​​React​Playwright,TypeScript,アクセシビリティ,サーバーレンダリング

Thumbnail of post image 150

React で img に loading=”lazy” を付けて遅延読み込みし、onLoad と onError で読み込み中の表示を出す方法です。width・height、key での作り直し、ハイドレーシ ...

​​React​react-markdown,rehype-sanitize,TypeScript,XSS

Thumbnail of post image 006

react-markdownは、何も設定しなければMarkdownの中のHTMLを文字のまま表示し、javascript:のリンクも消します。rehype-sanitizeの置き場所と、HTMLを使わないときの設定を確かめました。

​​React​createPortal,inert,Playwright,TypeScript,アクセシビリティ,モーダル

Thumbnail of post image 136

​

自作のモーダルを開いている間、後ろの画面を包む要素に inert を付けると、Tab キーのフォーカスもクリックも届かなくなり、アクセシビリティツリーからも外れます。フォーカストラップを作るときは、後ろの画面へフォーカスが移らないよう ...

​​React​beforeunload,flushSync,Playwright,React Router,TypeScript,useBlocker

Thumbnail of post image 113

​

入力したまま保存していない内容を、うっかり捨てないための確認の出し方です。再読み込みやタブを閉じる操作はbeforeunloadで、アプリの中の画面移動はReact RouterのuseBlockerで止める方法を、検証環境で確かめま ...

​​React​EventSource,Node.js,Playwright,Server-Sent Events,TypeScript,useEffect,useEffectEvent,カスタムフック

Thumbnail of post image 118

ReactでServer-Sent Eventsの通知を受け取る方法です。名前付きイベントの受け取り方、つなぎ直しとLast-Event-IDでの取りこぼし防止、同じオリジンへの接続が6本で止まる制限を検証環境で確かめました。 ...

​​React​BroadcastChannel,Playwright,TypeScript,useEffect,useEffectEvent,カスタムフック

Thumbnail of post image 179

同じサイトを複数のタブで開いているとき、片方のタブで変えた状態を、BroadcastChannelでほかのタブにも反映する方法です。チャンネルを閉じ忘れたときの動きや、あとから開いたタブに値を渡す方法を、検証環境で確かめました。

​​React​AbortController,TypeScript,useEffect,useEffectEvent,カスタムフック

Thumbnail of post image 125

​

入力しながら結果が出る検索欄に、デバウンスを入れるカスタムフックを TypeScript で作りました。サーバーへのリクエストが1件にまとまること、古い結果の取り消し、空欄や検索中の表示、日本語の変換中の扱いを、Chrome for ...

​​React​CSS,Playwright,Popover API,TypeScript

Thumbnail of post image 127

​

ReactでPopover APIを使い、ボタンの下にメニューを出す方法です。ドロップダウンメニューを作るときに使えます。popoverとpopoverTargetを付けるだけで開閉でき、外側のクリックやEscで閉じます。項目を選んだ ...

カテゴリー