Ref callbackとcleanup functions
Ref callback、React v19で追加されたクリーンアップ関数、useEffectとの違いについて。また特にクリーンアップ関数を使ったRef callbackの実装例。
入力して検索を開始
Ref callback、React v19で追加されたクリーンアップ関数、useEffectとの違いについて。また特にクリーンアップ関数を使ったRef callbackの実装例。
Ref callback、React v19で追加されたクリーンアップ関数、useEffectとの違いについて。また特にクリーンアップ関数を使ったRef callbackの実装例。
React v19ではグローバルなJSX名前空間が削除されたため、これを利用している場合に型の変更が必要になる。
個人的には出来る限りスコープ外の関数としてコンポーネントを切り出すべきだと考えている。パフォーマンス、コードとしての質、将来性の観点から説明を行った
React v19でstyleタグと@scopeを使って、いくつかのCSS-in-JSライブラリのようにclassNameを指定せずにスタイルのカプセル化が出来るのかを検証した。
React Routerを利用している環境で、一度エラーが表示された後に、パスパラメーターが異なるURLに遷移しても、ErrorBoundaryによって表示されたエラーが画面から消えないと相談を受けた。その理由と対応策について書いた。
公式ドキュメントを十分に読んでいないと理解が難しいと思われるParallel routesが404になる理由やdefault.jsの意味について、タブの実装を例に書いた。
React公式ドキュメントを見ながらReact 19の新機能を見る会を主催した際のメモです。多くは最低限このくらいの理解はしておいた方がいいという内容を事前に羅列しておいたものですが、一部その場で話題になった内容も含まれています。
ESLintで特定のpropsを禁止にしたい場合の設定方法について説明する。
ESLintで特定の要素の利用を禁止したい場合の設定方法について説明する。
ESLint v9がリリースされたが、ESLint pluginのESLint v9対応が出来ていないpluginが複数あり、その対応状況を調査した。
Propsから受け取ったrefを内部的なrefとマージする方法を紹介する。
refが取れないので非制御コンポーネントに出来ないという相談を受けたので、非制御コンポーネントとrefの関係について説明した
useRefでステートを管理する是非について質問を受けたので、個人的な意見をまとめた。
useEventの後継として提案されているuseEffectEventについてのメモ。
data-属性やaria-属性などは、型定義がJSXに含まれていなくても型エラーになりません。この理由や型エラーになるケースについて紹介します。
ReactコンポーネントをJSX形式ではなく、ただの関数として呼ぶとバグの原因になる場合がある。これが原因のバグの相談を度々受けるので、問題になる例と対策をまとめた。
React v18.2.0時点ではexperimentalなuseFormStatusを利用すると、重複送信を防ぐボタンを簡単に実装できる。
reactwg/server-componentsのDiscussionsで公開された`Why do Client Components get SSR'd to HTML? `のRSCの説明が分かりやすい。
React Router v6に移行する際に気を付けるべき点や、移行時に受けた質問をまとめました。
ReactのRouterライブラリなどでパスの書き間違いを防ぎたいと聞かれたので、いくつかの方法を提示した際のメモ。
ページにフォーカスを戻すと入力要素に入力していた内容が吹き飛ぶ場合があるという相談を受けたため、その調査と対応についてまとめた。
Playwrightを利用したE2Eテストで稀に要素が取得できなくなり失敗すると相談を受けた際の対応についてまとめた。
Reactの状態管理ライブラリであるJotai、Recoil、Redux、Zustandについて比較した雑感。
React Router v6でパスパラメータが変更された際も再レンダリングをトリガーする方法を紹介する。
Prism.jsを利用していると対応言語に書かれているがハイライトされない言語がいくつかあった。これはprism-react-rendererからprismjs本来の機能を使うように移行した際のメモです。
Reactのイベント型について書いた。React.MouseEvent、React.ChangeEvent、React.SyntheticEvent、NativeのEvent型、React.XXXEventHandlerなどについて、どれを使うべきか。
ReactのFunction Componentの型は、歴史的な理由などにより様々な記述ができる。React.FunctionComponent、React.FC、React.VFC、(props: SomeComponentProps): JSX.Elementなどがある。
Reactのpropsをunion typeにする方法をいくつか紹介する。ただし、これらの利用やそもそもunion typeをpropsに使うこと自体が適切かどうかは慎重に検討する必要がある。
ReactとTypeScriptでHTML属性を拡張する方法について書いた。React.ComponentPropsWithoutRefやReact.ComponentPropsWithRef、React.ComponentProps、JSX.IntrinsicElements、React.DetailedHTMLProps、React.ButtonHTMLAttributes、React.HTMLProps、React.AllHTMLAttributes、React.HTMLAttributesなど。
Fire-and-forgetパターンつまりuseEffectOnceのようなコードをuseEventでどのように置き換えられるか
会社にて、ほとんどのサービスのReactのバージョンをアップグレードするイベントを開催した際のQ&Aなどをまとめました。
要素を返す前にstateを更新すると何が起きるかのクイズ。
リリースされたばかりのReact Router V6のOutletを使って、ページコンポーネントを遅延読み込みするいい感じの方法を考えた。
CSS-in-JSのstyledとcss propの記法について、styled-componentsの作者であるGlen Maddern氏による説明のメモ。
React-Routerでリダイレクトさせる際にreplaceさせないと、リダイレクトされるページの前にいたページに戻れなくなるのは当たり前だと思うが、質問があったのでまとめた。
ReactにおいてgetElementByIdやquerySelectorを避けた方が良い理由の説明。
useEffectのdepsに依存関係を入れる理由について解説する。
Vercel Labs は、コアを Zig で実装し WASM へコンパイルした Web 向けターミナルエミュレータ wterm を公開した。DOM へ描画し、ブラウザ標準の選択・コピー・検索やスクリーンリーダー連携を活かす構成である。
TanStack Start が React Server Components をサーバー所有のツリー前提にせず、取得・キャッシュ・デコード可能な Flight ストリームとして扱う方針と Composite Components を公式ブログで説明した。
Material UI 9.0 がリリースされ、Base UI ベースの NumberField と Menubar が追加され、アクセシビリティ既定・キーボード操作・テーマの CSS 変数まわりが強化された。非推奨 API の削除など破壊的変更を伴い、v7 からの移行ガイドが用意されている。
アクセシビリティとキーボード操作の改善に加え、Base UI を土台にした NumberField と Menubar が追加され、テーマの CSS 変数では color-mix() による派生色が扱えるようになった。
ブランドアイコン全削除、aria-hidden既定化、UMD廃止とESM・CJSのみ、lucide-reactのバンドル縮小、lucide-vue-nextの@lucide/vueへのリネーム、@lucide/angular追加、React・Vue・Svelte・Solidのコンテキストプロバイダ、フォントのコードポイント固定、lucideパッケージのshadow DOM対応。
Storybook 10.3以上のReact向け@storybook/addon-mcp、ローカルMCP URL登録、compositionによる複数Storybookの入力統合、ChromaticでのリモートMCP公開、MCP Apps経由のライブストーリー埋め込み、コンポーネント/アクセシビリティテスト実行ツール。Reshapedライブラリでの生成UI比較数値。他フレームワーク向けは年内予定。
Linux Foundation傘下の独立財団として正式にローンチ。初期メンバー8社の決定やプロジェクト管理の移行など。
WebGPUを活用したオープンソースのチャートライブラリ。100万点を超えるデータセットの60fpsレンダリングを実現。
React Server Componentsの動作を視覚的にデモするためのツール「RSC Explorer」が公開。ServerとClientの通信を可視化。
Hooksデフォルトの新しいドキュメントサイトがリリース。豊富なサンプルや詳細な解説を追加。
Hi there. I'm hrdtbs, a frontend expert and technical consultant. I started my career in the creative industry over 13 years ago, learning on the job as a 3DCG modeler and game engineer in the indie scene.
In 2015 I began working as a freelance web designer and engineer. I handled everything from design and development to operation and advertising, delivering comprehensive solutions for various clients.
In 2016 I joined Wemotion as CTO, where I built the engineering team from the ground up and led the development of core web and mobile applications for three years.
In 2019 I joined matsuri technologies as a Frontend Expert, and in 2020 I also began serving as a technical manager supporting streamers and content creators.
I'm so grateful to be working in this field, doing something that brings me so much joy. Thanks for stopping by.