ReactのRefについて解説

react ref React
この記事は約2分で読めます。

この記事の最終更新日: 2023年11月23日

Reactは通常、データフローを通じてUIを更新しますが、場合によってはDOM要素へ直接アクセスする必要があります。このブログ記事では、Reactのrefを使ってDOM要素に直接アクセスする方法について解説します。

Refとは?

Ref(参照)は、Reactコンポーネント内のDOMノードまたはReact要素に「参照」(直接のアクセス権)を提供します。これにより、通常のデータフローの外で、DOM要素を直接操作できます。

Refの作成

Reactでは、React.createRef()メソッドを使用してrefを作成します。クラスコンポーネント内で、通常はコンストラクタ内でこれを行います。

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.myRef = React.createRef();
  }

  render() {
    return <div ref={this.myRef} />;
  }
}

Refの使用例

フォーカスの制御

フォーム要素に自動的にフォーカスを当てることが一般的な使用例です。

class AutoFocusTextInput extends React.Component {
  constructor(props) {
    super(props);
    this.textInput = React.createRef();
  }

  componentDidMount() {
    this.textInput.current.focus();
  }

  render() {
    return <input type="text" ref={this.textInput} />;
  }
}

アニメーション

DOM要素に直接アクセスして、アニメーションを制御することもできます。

ライブラリ統合

外部DOMライブラリをReactと統合する場合にもrefが役立ちます。

Refの注意点

  • Refはコンポーネントの再レンダリングを引き起こしません。
  • コンポーネント間でrefを渡すことは避けるべきです。
  • 乱用は避け、必要な場合のみ使用しましょう。

まとめ

Refは、ReactでのDOM操作において強力なツールです。しかし、その使用は慎重に行う必要があります。適切に使えば、Reactアプリケーションの機能を大きく拡張できるでしょう。

コメント

タイトルとURLをコピーしました