JSX (JavaScript)JSX (JavaScript XML, formally JavaScript Syntax eXtension) は、 JavaScript に XML のような文法が拡張された言語である[1]。もともとReactで使用するためにMetaによって作成されたJSXは、複数のWebフレームワークで使用されている[2]:5[3]:11 。糖衣構文(シンタックスシュガー)であるJSXは通常、元のJSXと構造的に似ているJavaScriptの関数呼び出しによって作られたコードに変換される。 マークアップJSXコードの例: const App = () => {
return (
<div>
<p>Header</p>
<p>Content</p>
<p>Footer</p>
</div>
);
}
ネストされた要素同じ階層に複数の要素を配置する場合、 属性JSXは、HTMLによって提供される属性と同様な属性を使用できる。また、カスタム属性を定義し、コンポーネントに渡すこともできる[6]。すべての属性は、コンポーネントにpropsとして渡される。 JavaScript式JavaScript の 式 (ただし文ではない)は、 <h1>{10+1}</h1>
Reactの場合、以下のようにレンダリングされる: <h1>11</h1>
条件付き表現If文 は JSX 内で使用不可能だが、代わりに三項演算子を使用できる。 この例 const App = () => {
const i = 1;
return (
<div>
<h1>{ i === 1 ? 'true' : 'false' }</h1>
</div>
);
}
これはReactの場合以下のようにレンダリングされる: <div>
<h1>true</h1>
</div>
同様に関数も使用できる:[3]:88-90 const App = () => {
const sections = [1, 2, 3];
return (
<div>
{sections.map((n,i) => (
/* 'key' is used by React to keep track of list items and their changes */
/* Each 'key' must be unique */
<div key={"section-" + n}>
Section {n} {i === 0 && <span>(first)</span>}
</div>
))}
</div>
);
}
これはReactの場合以下のようにレンダリングされる: <div>
<div>Section 1<span>(first)</span></div>
<div>Section 2</div>
<div>Section 3</div>
</div>
JSXは、ウェブブラウザで読み込まれる前に、Babelなどのツールで変換する必要がある[7][8]:5。ほとんどの場合、このプロセスはデプロイ前のビルドで行われる。 関連項目出典
外部リンク |