本記事では、ReactのFragmentの使い方について解説しています。
Reactの学習におすすめ書籍
モダンJavaScriptの基本から始める React実践の教科書
メリット
- JavaScriptの基礎から始めてReactの機能を一通り学べる
- 実務で必要となる知識を意識しながら学習を進められる
- 現場のシチュエーションベースのストーリーで技術解説
楽天ブックス
¥2,860 (2024/12/05 19:41時点 | 楽天市場調べ)
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著: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構造になっていることが分かります。