LoginSignup
3
5

More than 5 years have passed since last update.

Reactで複数のタグを使いたい時

Posted at

未だにFlagmentの省略した書き方してない人もいると思うので書き残しておきます。

Flagmentってなに?

JSXのreturnでは、一つの要素しか返しちゃいけないルールがあるので何かのタグでくくらないといけないんだけど<div>を使うと無駄な<div>があちこちで発生してしまうため、Flagmentってもので記述をするやり方。
確かclassとか属性値も普通の要素のように割り当てられるんじゃなかったかな?(適当な記憶)

全体を<div>で囲むのは遅れてる。

昔のコードをみると<div>で囲っているコードよくありますよね。それしかできなかったんだから仕方ないです。でも今は、もっといい方法があるので覚えておいてください。

const Sample = () => {
  return(
    <div>
      <h1>Hello World</h1>
      <p>サンプルコード</p>
    </div>
  );
};
export default Sample;

なぜダメなのか

無駄な<div>を生成しちゃうから

<React.Flagment>のコード

<div>の次に考えられたのが<React.Flagment>でコンポーネントを囲む方法。
これで記述すれば無駄な<div>コードを生み出さなくていい少しだけ全体的にネストが浅くなるはずです。

const Sample = () => {
  return(
    <React.Fragment>
      <h1>Hello World2</h1>
      <p>サンプルコード2</p>
    </React.Fragment>
  );
};
export default Sample;

なぜダメなのか

記述が長い。いちいち<React.Flagment>なんて書いてられないよ...。

本当は、<>これでいいんだよ

結論は、これ。
これは、<React.Flagment>を省略しただけの書き方
最近React Hooksの公式ドキュメント見たときも使われていたし
ガンガンこれ使っちゃっていいと思う。

const Sample = () => {
  return(
    <>
      <h1>Hello World3</h1>
      <p>サンプルコード3</p>
    </>
  );
};
export default Sample;

これで終わりです。
Happy hacking!😆

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5