[React] 無駄な React.Fragment (`<></>`) は書かない方が良い
3 min read
無駄な React.Fragment はそのまま出力される
ビルド前
両方とも HTML のレンダリング結果は同じである。
Sample1 | Sample2 |
---|---|
無駄な Fragment が記述されたコンポーネント(Sample1) |
Sample1 から無駄な Fragment を取り除いたコンポーネント(Sample2) |
ビルド後
HTML のレンダリング結果は同じでも、ビルド後の JavaScript のソースは異なる。ビルドしてもReact.Fragment
は定義した通り出力される。
Sample1 | Sample2 |
---|---|
|
|
変換結果のプレイグラウンド、こちら(Babel - Try it out)に置いておく。
Babelでの変換は上記の通りだが、TypeScriptでの変換もFragmentは同様に残る。
まとめ
記述したReact.Fragment
は最適化されず残ってしまう。大きな副作用があるわけではないので無駄に記述してしまいがちだが、そのぶんファイルサイズの肥大化やスクリプトの解析時間に影響を与えてしまうため、無駄な記述であればやめよう。
こういうトップレベルに無駄なReact.Fragment
が残りがちなので気を付けよう。
const Component = () => {
return (
<>
<div className="Component"></div>
</>
);
};