水曜日, 6月 25, 2025
水曜日, 6月 25, 2025
- Advertisment -
ホームニューステックニュース【React 19対応】forwardRefはまだ必要?refの新しい渡し方と基本を解説! #QiitaTechFesta2025 - Qiita

【React 19対応】forwardRefはまだ必要?refの新しい渡し方と基本を解説! #QiitaTechFesta2025 – Qiita



【React 19対応】forwardRefはまだ必要?refの新しい渡し方と基本を解説! #QiitaTechFesta2025 - Qiita

この記事はなに?

ref という機能や、forwardRef というコードに遭遇したことはありますか?

これらの機能は、普段のコンポーネント開発ではあまり使わないかもしれませんが、特定の場面で非常に役立つ、あるいは必須となるものです。特に、React 19の登場により ref の扱い方が大きく変わりました。

この記事では、

  • そもそも ref とは何か? なぜ必要なのか?
  • React 18までの ref の渡し方と forwardRef の役割
  • React 19で登場した ref の新しい扱い方
  • そして、どんな時に ref を使うべきなのか?

といった点について、具体的なコード例を交えながら解説したいと思います。

React 19から ref が props に!

React 19から、関数コンポーネントにおいて ref に props としてアクセスできるようになると公式ドキュメントでアナウンスされました。
これは ref の扱いにおいて非常に大きな変更点です。

今までは、カスタムコンポーネントに ref を渡すには forwardRef という特別な関数を使う必要がありました。
しかし、React 19以降の新しい関数コンポーネントでは、この forwardRef が不要になります。

公式ブログによると、将来のバージョンでは forwardRef は非推奨となり、最終的には削除される予定とのことです。

React 19 は2024年12月5日に安定版がリリースされており、今後開発されるアプリケーションではこの新しい ref の渡し方が主流になっていくでしょう。

ref は何に使うの?

React は、UI を宣言的に記述することで、開発者が DOM を直接操作する手間を省いてくれるライブラリです。
ほとんどの場合、stateprops を使ってコンポーネントの状態を管理すれば、期待通りの UI がレンダリングされます。

しかし、ごく稀に、React が管理していない DOM 要素に直接アクセスしたい場面が出てきます。そんな時は ref を使います。

具体的には、以下のようなユースケースがあります。

  • 入力フォームの操作: 特定の inputtextarea 要素にユーザーのフォーカスを自動で当てたい、値を直接操作したい場合。

    • 例: ページロード時に検索ボックスに自動でカーソルを合わせる。
  • メディアコントロール: videoaudio 要素の再生・一時停止、音量調整などを、カスタムボタンから制御したい場合。

    • 例: オリジナルの再生/一時停止ボタンで動画を操作する。
  • アニメーションやトランジション: DOM 要素のサイズや位置を直接取得して、複雑なアニメーションを実装したい場合。
  • サードパーティ製ライブラリとの連携: React のコンポーネント内で、DOM 要素への直接的な参照を必要とする JavaScript ライブラリ(D3.js や Chart.js など)を使う場合。

    • 例: Chart.js でグラフを描画するために、Canvas 要素への参照を渡す。

ref は強力な機能ですが、乱用は避け、stateprops を使った宣言的なデータフローを優先することが重要です。
DOM を直接操作することは、コンポーネントの予測可能性を低下させる可能性があります。

React 18までの ref の扱い方

React 18 までのバージョンでは、標準の HTML 要素(

, ,





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -