【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【React】Fragmentの使い方

本記事では、ReactのFragmentの使い方について解説しています。

Reactの学習におすすめ書籍
モダンJavaScriptの基本から始める React実践の教科書
総合評価
( 5 )
メリット
  • JavaScriptの基礎から始めてReactの機能を一通り学べる
  • 実務で必要となる知識を意識しながら学習を進められる
  • 現場のシチュエーションベースのストーリーで技術解説
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

Fragmentの使い方

Reactでは、returnでJSXを返す時に1つのまとまりで要素にまとめてあげる必要があります。もし、複数要素をreturnで返したい場合divタグをルート要素としてまとめる方法もありますが、これは意味のないタグを1つ増やしネストが1段階深くなってしまうためよろしくありません。

▼divタグをルート要素に設定したコード

import React from "react";

function App() {
  return (
    <div> 
      <p>App1</p>
      <p>App2</p>
    </div>
  );
}

▼生成されたHTML

<body>
  <div id="root">
    <div> <!-- 無駄なdivタグ -->
      <p>App1</p>
      <p>App2</p>
    </div>
  </div>
</body>

このような場合にFragmentは活躍します。Fragmentは、ルート要素として設定することで複数要素をまとめることができ、且つHTMLタグも生成されません。

Fragmentの基本的な使い方は以下のとおりです。

▼Fragmentをルート要素に設定したコード

import React from "react";

function App() {
  return (
    <React.Fragment>
      <p>App1</p>
      <p>App2</p>
    </React.Fragment>
  );
}

▼生成されたHTML

<body>
  <div id="root">
    <p>App1</p>
    <p>App2</p>
  </div>
</body>

Fragmentは、React機能の一つなので<React.Fragment></React.Fragment>と記述します。名前付きインポートでもFragmentを使用することが可能です。

▼名前付きインポートのコード

import { Fragment } from "react";

function App() {

  return (
    <Fragment>
      <p>App1</p>
      <p>App2</p>
    </Fragment>
  );
}

更に、<Fragment></Fragment>の箇所を<></>に置き換えることでFragmentをimportすることなく実装することも可能です。

▼Fragment未使用のコード

import { Fragment } from "react";

function App() {

  return (
    <>
      <p>App1</p>
      <p>App2</p>
    </>
  );
}

▼生成されたHTML

<body>
  <div id="root">
    <p>App1</p>
    <p>App2</p>
  </div>
</body>

生成されたHTMLを確認するとFragmentを使用している状態と同じHTML構造になっていることが分かります。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次