【React】不要タグを出力させないFragmentの使い方
JSX(htmlみたいなもの)のルールで、returnで返されるJSXのルートは一つで束ねられている必要があります。
そのために、divタグなどで囲うことで束ねることができますが、
不要なタグを書きたくない場合があります。
そのようなときに使えるのが、Fragment(フラグメント)です。
ReactのFragmentの使い方
const Func = () => {
return (
<div>
<div className="func">
<h3>タイトル</h3>
</div>
<h3>タイトル2</h3>
<p>文章文章文章文章文章</p>
</div>
);
};
上をFragmentを使って書き換えると、以下のようになります。
const Func = () => {
return (
<>
<div className="func">
<h3>タイトル</h3>
</div>
<h3>タイトル2</h3>
<p>文章文章文章文章文章</p>
</>
);
};
明治的にFragmentと書くことも可能です。
import { Fragment } from "react";
const Func = () => {
return (
<Fragment>
<div className="fonc">
<h3>タイトル</h3>
</div>
<h3>タイトル2</h3>
<p>文章文章文章文章文章</p>
</Fragment>
);
};
Fragmentにつけられる属性はKeyのみ
import { Fragment } from "react";
const Func = () => {
return (
<Fragment key="">
<div className="fonc">
<h3>タイトル</h3>
</div>
<h3>タイトル2</h3>
<p>文章文章文章文章文章</p>
</Fragment>
);
};
Fragmentはそもそも出力されないため、クラスといった属性などはつけても表示されません。
しかし、key属性だけは付与させることができます。
逆にkey属性をつけるときは、Fragmentを明示的に書く必要があります。
Fragmentの注意点
Fragmentはhtmlには表示されませんが、JavaScript上には残ります。
よって、あまり不必要に使うとデータも大きくなったり、可能性は低いですがバグの原因になりかねないので、
必要なときだけ記述するようにします。