37posts

5 min

Ref callbackとcleanup functions

Ref callback、React v19で追加されたクリーンアップ関数、useEffectとの違いについて。また特にクリーンアップ関数を使ったRef callbackの実装例。

2 min

Web ComponentsのReact v19対応

React v19ではグローバルなJSX名前空間が削除されたため、これを利用している場合に型の変更が必要になる。

3 min

Q. React Routerでページ遷移してもErrorBoundaryがリセットされない

React Routerを利用している環境で、一度エラーが表示された後に、パスパラメーターが異なるURLに遷移しても、ErrorBoundaryによって表示されたエラーが画面から消えないと相談を受けた。その理由と対応策について書いた。

2 min

Tabs using Parallel Routes with Next.js App Router

公式ドキュメントを十分に読んでいないと理解が難しいと思われるParallel routesが404になる理由やdefault.jsの意味について、タブの実装を例に書いた。

4 min

React 19の機能を見る会のメモ

React公式ドキュメントを見ながらReact 19の新機能を見る会を主催した際のメモです。多くは最低限このくらいの理解はしておいた方がいいという内容を事前に羅列しておいたものですが、一部その場で話題になった内容も含まれています。

1 min

Reactでrefをマージする

Propsから受け取ったrefを内部的なrefとマージする方法を紹介する。

2 min

ReactコンポーネントはJSXとして呼ぶべき

ReactコンポーネントをJSX形式ではなく、ただの関数として呼ぶとバグの原因になる場合がある。これが原因のバグの相談を度々受けるので、問題になる例と対策をまとめた。

1 min

Prism.jsでハイライトされない言語があった

Prism.jsを利用していると対応言語に書かれているがハイライトされない言語がいくつかあった。これはprism-react-rendererからprismjs本来の機能を使うように移行した際のメモです。

3 min

Reactのイベント型について

Reactのイベント型について書いた。React.MouseEvent、React.ChangeEvent、React.SyntheticEvent、NativeのEvent型、React.XXXEventHandlerなどについて、どれを使うべきか。

4 min

Reactのpropsをunion typeにする方法について

Reactのpropsをunion typeにする方法をいくつか紹介する。ただし、これらの利用やそもそもunion typeをpropsに使うこと自体が適切かどうかは慎重に検討する必要がある。

2 min

ReactとTypeScriptでHTML属性を拡張する方法について

ReactとTypeScriptでHTML属性を拡張する方法について書いた。React.ComponentPropsWithoutRefやReact.ComponentPropsWithRef、React.ComponentProps、JSX.IntrinsicElements、React.DetailedHTMLProps、React.ButtonHTMLAttributes、React.HTMLProps、React.AllHTMLAttributes、React.HTMLAttributesなど。

8 min

Upgrade to React 18

会社にて、ほとんどのサービスのReactのバージョンをアップグレードするイベントを開催した際のQ&Aなどをまとめました。

Bits · 61 件

Storybook 10.3、React向けMCPアドオンでエージェントにコンポーネント文脈とテスト手段を提供

Storybook 10.3以上のReact向け@storybook/addon-mcp、ローカルMCP URL登録、compositionによる複数Storybookの入力統合、ChromaticでのリモートMCP公開、MCP Apps経由のライブストーリー埋め込み、コンポーネント/アクセシビリティテスト実行ツール。Reshapedライブラリでの生成UI比較数値。他フレームワーク向けは年内予定。

VercelがReact Best Practicesを公開

Vercelが10年以上にわたるReactとNext.jsの最適化ノウハウをまとめたreact-best-practicesリポジトリを公開した。 8つのカテゴリー(ウォーターフォールの排除、バンドルサイズの削減など)にわたり、40以上のルールがCRITICALからLOWの重要度とともに提供されている。AIエージェント向けのスキルとしても提供されており、npx add-skill vercel-labs/agent-skillsで導入できる。 ### 参考文献

TanStack DB 0.1ベータ版リリース

TanStack QueryのためのクライアントサイドデータベースTanStack DB 0.1がリリース。従来のReactアプリの状態変更が引き起こす大量の再レンダリング、フィルター処理、useMemo実行、スピナー点滅の問題について、開発者がView固有API(高速レンダリング、API乱立)か全データ読み込み後フィルター(シンプルバックエンド、低速クライアント)の二択を迫られる状況に対し、Differential dataflowによる第三の選択肢がある。10万件ソート済みコレクションの1行更新を0.7msで処理し、正規化されたコレクションから増分結合をミリ秒レベルで行える。既存のuseQuery呼び出しをラップして段階的導入ができる。恐らくSPAアプリケーションで恩恵が大きい。 ### 参考文献

React Compiler段階的導入ガイド公開

React Compilerの段階的導入ガイドが公式ドキュメントに追加。全コードベースを一度に最適化する必要がなく、小さな部分でテストしてから拡張する戦略を解説している。Babel overridesによるディレクトリベース導入、"use memo"ディレクティブによるコンポーネント単位の制御、runtime gatingによるフィーチャーフラグ制御の3つのアプローチがある。本番アプリケーションでの安定性確保、Rules of React違反の段階的修正、A/Bテストによる影響測定ができ、企業での採用手順が整理されている。 ### 参考文献