3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

React 入門道場 ~特殊なJSXの構文~

Last updated at Posted at 2021-08-30

はじめに

Reactを学習していてJSXについて理解が浅かったので今回簡単ににまとめてみました。
今回は特殊なJSXの構文についてまとめてみました。

特殊なJSXの構文

自分自身、下記の3つのコードを説明するほど理解していなかったので要点をまとめることにします:point_up:

return (
   <p>サンプルコードです</p>
   <p>特殊なJSXの構文の学習</p>
)

return (
  <React.Fragment>
   <p>サンプルコードです</p>
   <p>特殊なJSXの構文の学習</p>
  </React.Fragment>
)

return (
  <>
   <p>サンプルコードです</p>
   <p>特殊なJSXの構文の学習</p>
  </>
)

前提知識

1.JSXは必ず階層構造でなければならない!
最上位のコンポーネント或いはタグを書く必要がある。

これを踏まえた上で、先程の①では最上位のコンポーネント或いはタグの記載がありません。

Error

return (
   <p>サンプルコードです</p>
   <p>特殊なJSXの構文の学習</p>
)

かと言って、別の方法としてdivタグで囲ってしまうのいけません!HTMLではdivタグはなんの意味もなく、必要ないものにはdivタグを使用しない方が良い:point_up:
理由として、HTMLで出力した際にCSSの崩れが無くなるからである。

   return (
        <div>
      <p>{caption}</p>
      <img src={samplePath} alt={'sample写真'} />
    </div>
  )
}

divタグを使わない方法 -React.Fragment-

return (
  <React.Fragment>
   <p>サンプルコードです</p>
   <p>特殊なJSXの構文の学習</p>
  </React.Fragment>
)

先程、divタグは使いたくない時の対処法としてReact.Fragmentを使います!
先程挙げた条件としての、JSXは必ず階層構造でなければならない!っていうのもクリアしてますね:smiley:

最終的にHTMLに出力した際は、React.Fragmentがなかった事として出力される。

return (
   <p>サンプルコードです</p>
   <p>特殊なJSXの構文の学習</p>
)

並列で使用する際はReact.Fragmentを使いましょう

 -React.Fragmentは省略可能-

return (
  <React.Fragment>
   <p>サンプルコードです</p>
   <p>特殊なJSXの構文の学習</p>
  </React.Fragment>
)
return (
  <>
   <p>サンプルコードです</p>
   <p>特殊なJSXの構文の学習</p>
  </>
)

よくある間違い

return (
  <>
   <p>サンプルコードです</p>
  </>
)

よく間違った使い方として、タグが一つしかないのにReact.Fragmentをしてしているケースがある。これだと意味をなさない。pタグひとつで良い。React.Fragmenは二つ以上で並べる時、階層構造のルールあるので上位のタグを使用する際に使用する:hugging:

日本一わかりやすいReact入門【基礎編】JSXの記法

3
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?