ホームページ ウェブフロントエンド jsチュートリアル JSX (JavaScript XML): React での UI 開発の簡素化

JSX (JavaScript XML): React での UI 開発の簡素化

Jan 03, 2025 pm 05:23 PM

JSX (JavaScript XML): Simplifying UI Development in React

JSX (JavaScript XML): React の主要な機能

JSX (JavaScript XML) は、開発者が JavaScript ファイル内に HTML のようなコードを直接記述できるようにする JavaScript の構文拡張機能です。これは React の中核機能の 1 つであり、ユーザー インターフェイス (UI) の構造を明確かつ簡潔に記述できるようにすることで開発エクスペリエンスを向上させます。

JSX について知っておくべきことはすべてここにあります:


1. JSX とは何ですか?

JSX を使用すると、JavaScript 内の HTML 要素または React コンポーネントを表す XML のようなタグを作成できます。 JSX は HTML のように見えますが、そうではありません。内部では、JSX は Babel などのツールを使用して標準 JavaScript にコンパイルされます。

  • JSX の例:
  const Greeting = () => {
    return <h1>Hello, World!</h1>;
  };
ログイン後にコピー
ログイン後にコピー
  • コンパイルされた JavaScript:
  const Greeting = () => {
    return React.createElement('h1', null, 'Hello, World!');
  };
ログイン後にコピー
ログイン後にコピー

2. JSX の主な機能

a.式の埋め込み

JavaScript 式を中括弧 {} で囲むことにより、JSX 内に埋め込むことができます。

  • :
  const name = "Alice";
  const Greeting = () => <h1>Hello, {name}!</h1>;
ログイン後にコピー
ログイン後にコピー

b.属性

JSX は、HTML に似た属性をサポートしていますが、プロパティの命名にはキャメルケースが使用されています。

  • :
  const Button = () => <button className="btn" onClick={() => alert('Clicked!')}>Click Me</button>;
ログイン後にコピー
ログイン後にコピー

c.ネストされた要素

要素を相互にネストして、完全な UI 構造を作成できます。

  • :
  const App = () => (
    <div>
      <h1>Welcome</h1>
      <p>This is a nested JSX structure.</p>
    </div>
  );
ログイン後にコピー

d.条件付きレンダリング

JavaScript ロジックを使用して要素を条件付きでレンダリングします。

  • :
  const isLoggedIn = true;
  const App = () => (
    <div>
      {isLoggedIn ? <h1>Welcome Back!</h1> : <h1>Please Log In</h1>}
    </div>
  );
ログイン後にコピー

3. JSX を使用する理由

a.宣言構文

JSX は UI を定義する宣言的な方法を提供し、コードをより読みやすく、実際の UI デザインに近づけます。

b. JavaScript との統合

JSX は JavaScript 関数の単なる構文糖であるため、UI 定義内でロジック、状態、プロパティをシームレスに統合できます。

c.強化された開発者エクスペリエンス

JSX を使用すると、従来の React.createElement() 呼び出しと比較して、UI コードの作成、理解、デバッグが容易になります。


4. JSX のルールとベスト プラクティス

a.単一の親要素を返す必要があります

JSX は単一のルート要素を返す必要があります。

を使用します。または React フラグメント (<>...</>) を使用して複数の要素をグループ化します。
  • :
  const Greeting = () =&gt; {
    return &lt;h1&gt;Hello, World!&lt;/h1&gt;;
  };
ログイン後にコピー
ログイン後にコピー

b.自己終了タグ

子のない要素の場合は、自己終了タグを使用します。

  • :
  const Greeting = () =&gt; {
    return React.createElement('h1', null, 'Hello, World!');
  };
ログイン後にコピー
ログイン後にコピー

c.インライン スタイルを避ける (可能な場合)

JSX は style 属性によるインライン スタイルをサポートしていますが、保守性を高めるために CSS-in-JS ライブラリまたは外部スタイルシートを使用してください。

  • インライン スタイルの例:
  const name = "Alice";
  const Greeting = () =&gt; &lt;h1&gt;Hello, {name}!&lt;/h1&gt;;
ログイン後にコピー
ログイン後にコピー

b.値を適切にエスケープする

JSX は、XSS 攻撃を防ぐために危険な入力を自動的に回避します。例:

  • <div>{userInput}</div> <script> はエスケープされます。 userInput.</script>
  • のタグ

6. JSX が React にどのように適合するか

JSX は React の要件ではありませんが、次の理由から広く使用されています。

  • コンポーネントと UI を定義するプロセスが簡素化されます。
  • React のレンダリング ロジックとシームレスに統合されます。

JSX を使用せずに React コンポーネントを構築することはできますが、コードが冗長になり、管理が難しくなります。

  • JSX なし:
  const Button = () =&gt; &lt;button className="btn" onClick={() =&gt; alert('Clicked!')}&gt;Click Me&lt;/button&gt;;
ログイン後にコピー
ログイン後にコピー

7.ツールとサポート

JSX を使用するには、JSX コードを JavaScript にトランスパイルするための Babel などのビルド ツールが必要です。 Create React App を含むほとんどの React セットアップは、これを自動的に処理します。


8.結論

JSX は HTML と JavaScript の間のギャップを埋め、React で UI を定義するための宣言的で読みやすい強力な方法を提供します。必須ではありませんが、これは最新の React 開発の定番であり、開発者は定型文を減らしてより明確に複雑なユーザー インターフェイスを構築できます。

以上がJSX (JavaScript XML): React での UI 開発の簡素化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

10 jQuery構文蛍光物

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

&#x27; this&#x27; JavaScriptで? &#x27; this&#x27; JavaScriptで? Mar 04, 2025 am 01:15 AM

&#x27; this&#x27; JavaScriptで?

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

10 JavaScript&JQuery MVCチュートリアル

See all articles