TECH I.S.

React JSX


JSXとは?

JSXはJavaScript XMLの略です。

JSXを使用すると、ReactでHTMLを記述できます。

JSXを使用すると、ReactでのHTMLの記述と追加が容易になります。


JSXのコーディング

createElement()JSXを使用すると、JavaScriptでHTML要素を記述し、メソッドを使用せずにDOMにappendChild()要素を配置できます。

JSXはHTMLタグを反応要素に変換します。

JSXを使用する必要はありませんが、JSXを使用すると、Reactアプリケーションを簡単に作成できます。

2つの例を見てみましょう。1つ目はJSXを使用している例で2つ目は使用しない例です。

例1

JSX:

const myElement = <h1>I Love JSX!</h1>; const root = ReactDOM.createRoot(document.getElementById('root')); root.render(myElement);

実行例(開発準備中) »

例 2

JSXなし:
const myElement = React.createElement('h1', {}, 'I do not use JSX!'); const root = ReactDOM.createRoot(document.getElementById('root')); root.render(myElement);

実行例(開発準備中) »

最初の例でわかるように、JSXを使用すると、JavaScriptコード内にHTMLを直接記述できます。

JSXはES6に基づくJavaScript言語の拡張であり、実行時に通常のJavaScriptに変換されます。


JSXの式

JSXを使用すると、中括弧{ }内に式を記述できます。

式はReactの変数、プロパティ、またはその他の有効なJavaScriptの式にすることができます。JSXは式を実行し結果を返します。

式を実行する5 + 5:

const myElement = <h1>React is {5 + 5} times better with JSX</h1>;

実行例(開発準備中) »


大きなブロックをHTMLに挿入する

HTMLを複数行に記述するには、HTMLを括弧で囲みます。

3つのアイテムを含むリストを作成します。

const myElement = (   <ul>     <li>Apples</li>     <li>Bananas</li>     <li>Cherries</li>   </ul> );

実行例(開発準備中) »


1つのトップレベル要素

HTMLコードは1つのトップレベル要素でラップする必要があります。

したがって、2つの段落を書きたい場合は、それらをdiv 要素などの親要素の中に入れる必要があります。

2つの段落を1つのDIV要素内にラップします。

const myElement = (   <div>     <p>I am a paragraph.</p>     <p>I am a paragraph too.</p>   </div> );

実行例(開発準備中) »

HTMLが正しくない場合、またはHTMLに親要素がない場合、JSXはエラーを返します。

または、「フラグメント」を使用して複数の行をラップすることもできます。これにより、DOMに余分なノードを不必要に追加するのを防ぐことができます。

フラグメントは空のHTMLタグ<></>のように見えます。

2つの段落をフラグメント内にラップします。

const myElement = (   <>     <p>I am a paragraph.</p>     <p>I am a paragraph too.</p>   </> );

実行例(開発準備中) »


要素は閉じている必要があります

JSXはXML規則に従うため、HTML要素を適切に閉じる必要があります。

空の要素を閉じる/>
const myElement = <input type="text" />;

実行例(開発準備中) »

HTMLが適切に閉じられていない場合、JSXはエラーを返します。


属性クラス = クラス名

このclass属性はHTMLでよく使用される属性ですが、JSXはJavaScriptとして渡され、classはJavaScriptの言語であるため、JSXでは使用できません。

代わりにclassName属性を使用してください。

JSXは代わりにclassNameを使用することで問題を解決できます。JSXがレンダリングされると、className属性がクラス属性に変換されます。

JSXのクラスの代わりに属性classNameを使用します。

const myElement = <h1 className="myclass">Hello World</h1>;

実行例(開発準備中) »


条件 - ifステートメント

Reactはifステートメントをサポートしていますが、JSX内ではサポートしていません。

JSXで条件ステートメントを使用できるようにするには、ifJSX外のステートメント、または代わりに三項式を使用できます。

オプション1:

ifJSXコードの外側にステートメントを記述します。

その場合は「Hello」と書き、xが10未満の場合、それ以外の場合は「Goodbye」と書きます。

const x = 5; let text = "Goodbye"; if (x < 10) {   text = "Hello"; } const myElement = <h1>{text}</h1>;

実行例(開発準備中 »

オプション2:

代わりに三項式を使用します。

xが10未満なら "Hello"、そうでなければ "Goodbye "と書く:
const x = 5; const myElement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;

実行例(開発準備中)»

注:JavaScript式をJSX内に埋め込むには、JavaScriptを中括弧{}で囲む必要があります。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細