カテゴリ: React 更新日: 2026/03/03

ReactのJSX属性に動的な値を渡す方法とは?初心者でもわかる完全ガイド

JSXの属性に動的な値を渡す方法
JSXの属性に動的な値を渡す方法

先生と生徒の会話形式で理解しよう

生徒

「ReactのJSXで、ボタンの文字とか画像のパスを変えたいときって、どうやって値を渡すんですか?」

先生

「Reactでは、JSXという書き方でHTMLのようなコードを書きますが、その中で動的に値を渡すには中かっこ(波かっこ)を使います。」

生徒

「中かっこですか?HTMLと何が違うんですか?」

先生

「HTMLでは固定の文字しか書けませんが、ReactのJSXでは変数や関数の結果を渡せるのが特徴です。では具体的に見ていきましょう。」

1. JSXとは?Reactで使われる特別な書き方

1. JSXとは?Reactで使われる特別な書き方
1. JSXとは?Reactで使われる特別な書き方

まず、JSX(ジェイエスエックス)とは、JavaScriptの中でHTMLのように見えるコードを書くための記法です。Reactでは、ユーザーに見せる画面(UI)を作るためにJSXが使われます。

普通のHTMLでは、<h1>こんにちは</h1>のように文字を直接書きますよね。でもReactでは、表示する文字や画像、スタイルなどを変数関数の結果に置き換えて動的に変えることができます。

2. JSX属性に動的な値を渡す基本:中かっこ { }

2. JSX属性に動的な値を渡す基本:中かっこ { }
2. JSX属性に動的な値を渡す基本:中かっこ { }

ReactのJSXでは、中かっこ { } を使うことで、JavaScriptの変数や関数をHTMLタグの属性に渡すことができます。

たとえば、ボタンの文字や画像のURL、class名などを変数で管理して、柔軟に使い回すことができます。

それでは、具体的なサンプルコードを見てみましょう。

3. サンプルコード:ボタンのテキストを変数で制御する

3. サンプルコード:ボタンのテキストを変数で制御する
3. サンプルコード:ボタンのテキストを変数で制御する

import React from "react";

function App() {
  const buttonText = "クリックしてね";

  return (
    <div>
      <button>{buttonText}</button>
    </div>
  );
}

export default App;
(画面に「クリックしてね」という文字のボタンが表示されます)

この例では、変数 buttonText の中身をボタンに表示しています。HTMLのように見えますが、中かっこ {} を使うことでJavaScriptの変数が使えるのです。

4. JSXの属性に変数を渡してみよう:画像の例

4. JSXの属性に変数を渡してみよう:画像の例
4. JSXの属性に変数を渡してみよう:画像の例

画像のURLを変数で管理して、JSXに渡すこともできます。


import React from "react";

function App() {
  const imageUrl = "https://example.com/sample.jpg";

  return (
    <div>
      <img src={imageUrl} alt="サンプル画像" />
    </div>
  );
}

export default App;
(画面に「https://example.com/sample.jpg」の画像が表示されます)

このように、src={imageUrl} のように記述することで、画像のURLを動的に変更できます。

5. クラス名を変数で渡す:CSSとの連携

5. クラス名を変数で渡す:CSSとの連携
5. クラス名を変数で渡す:CSSとの連携

ボタンのスタイルを切り替えたいときにも、クラス名を変数で管理できます。


import React from "react";

function App() {
  const classNameValue = "btn btn-primary";

  return (
    <div>
      <button className={classNameValue}>送信</button>
    </div>
  );
}

export default App;
(「送信」ボタンがBootstrapの青いボタンスタイルで表示されます)

className はHTMLの class と同じ意味ですが、Reactでは予約語の関係でclassではなくclassNameを使います。

6. 関数の結果を属性に使うこともできる

6. 関数の結果を属性に使うこともできる
6. 関数の結果を属性に使うこともできる

属性には、関数の戻り値を直接渡すことも可能です。たとえば、ランダムなメッセージを表示する関数を使ってみましょう。


import React from "react";

function getRandomText() {
  const messages = ["こんにちは!", "おはようございます!", "こんばんは!"];
  const index = Math.floor(Math.random() * messages.length);
  return messages[index];
}

function App() {
  return (
    <div>
      <h1>{getRandomText()}</h1>
    </div>
  );
}

export default App;
(画面に毎回違うメッセージが表示されます)

このように、関数の結果をJSXに渡すことで、動的で面白い画面を作ることができます。

7. 属性に文字列をそのまま渡すときは中かっこ不要

7. 属性に文字列をそのまま渡すときは中かっこ不要
7. 属性に文字列をそのまま渡すときは中かっこ不要

動的な値ではなく、固定の文字列を渡すときは中かっこは使いません。


<input type="text" placeholder="名前を入力してください" />

このように、HTMLと同じように文字列をそのまま書けばOKです。ただし、変数や関数を使うときは必ず { } を使う必要があります。

8. 属性に使えるのは「JavaScriptの値」

8. 属性に使えるのは「JavaScriptの値」
8. 属性に使えるのは「JavaScriptの値」

ここまでの内容をまとめると、ReactのJSXで属性に動的な値を渡すときは、次のように考えましょう:

  • 中かっこ { } で囲めば、JavaScriptの変数や関数を使える
  • srcaltclassNameなど、どの属性にも使える
  • 固定の文字列だけ使うなら、中かっこは不要

JSXの書き方に慣れてくると、属性にどんどん動的な値を渡せるようになります。これがReactの「柔軟さ」や「コンポーネント再利用のしやすさ」に繋がっているのです。

まとめ

まとめ
まとめ

JSX属性に動的な値を渡す考え方を振り返ろう

この記事では、ReactのJSXで属性に動的な値を渡す方法について、基礎から順番に解説してきました。 JSXは一見するとHTMLとよく似ていますが、実際にはJavaScriptの文法として処理されているため、 単なるマークアップとは違った考え方が必要になります。 特に重要なのが、中かっこを使ってJavaScriptの値を埋め込むという点です。

ボタンの文字を変数で管理したり、画像のURLを動的に切り替えたり、 クラス名を変数として渡して見た目を変更したりすることで、 Reactのコンポーネントは一気に柔軟性を持つようになります。 これにより、同じ部品を使い回しながら、表示内容だけを切り替えるといった実装が簡単にできるようになります。 JSX属性に動的な値を渡せるかどうかは、Reactを使いこなせるかどうかの大きな分かれ道と言えるでしょう。

中かっこが持つ意味を正しく理解する

JSXで使われる中かっこは、「ここからJavaScriptを書きます」という合図のようなものです。 HTMLの世界では、タグの中に直接変数を書くことはできませんが、 ReactのJSXでは中かっこを使うことで、JavaScriptの変数や関数の戻り値を自然に埋め込めます。 これは、画面の状態に応じて表示を変えるReactの思想と非常に相性が良い仕組みです。

たとえば、同じボタンでも、ログイン前とログイン後で表示する文字を変えたい場合、 中かっこを使って変数を渡せば、条件に応じて簡単に切り替えられます。 この考え方は、後々学ぶ条件分岐や状態管理とも深くつながっていきます。 まずは「中かっこで囲んだ中はJavaScript」という基本ルールを、しっかり体に染み込ませることが大切です。

属性に渡せる値の種類を整理する

JSXの属性に渡せるのは、単なる文字列だけではありません。 変数、数値、真偽値、配列、オブジェクト、関数の戻り値など、 JavaScriptとして扱える値であれば、基本的に何でも渡すことができます。 その中でも初心者のうちは、変数と関数の戻り値を使いこなせるようになるだけで十分です。

一方で、固定の文字列を渡す場合は中かっこが不要である点も重要です。 すべてに中かっこを付ければ良いわけではなく、 「動的かどうか」で使い分ける意識を持つことで、コードの読みやすさが大きく変わります。 JSXは自由度が高い分、書き方のルールを理解していないと混乱しやすいですが、 基本を押さえれば自然と整理されたコードが書けるようになります。

動的な属性を使ったシンプルなサンプル


import React from "react";

function App() {
  const buttonLabel = "送信する";
  const imagePath = "https://example.com/sample.jpg";

  return (
    <div>
      <h1>動的な属性のサンプル</h1>
      <img src={imagePath} alt="サンプル画像" />
      <button>{buttonLabel}</button>
    </div>
  );
}

export default App;
(画面に「動的な属性のサンプル」と表示され、画像と「送信する」ボタンが表示されます)

このサンプルのように、値を変数として管理してJSXに渡すだけで、 表示内容を簡単に差し替えられるようになります。 実際の開発では、この考え方を発展させて、 状態や外部データに応じた表示切り替えを行っていきます。 まずはシンプルな形で、動的な属性の便利さを実感してみてください。

JSX属性を理解するとReactが一気に身近になる

JSX属性に動的な値を渡せるようになると、 Reactのコードが単なる見た目の記述ではなく、 ロジックと密接につながったものだと感じられるようになります。 ボタン、画像、入力欄といった身近な要素を通して学ぶことで、 Reactの考え方が少しずつ自分の中に定着していくはずです。

最初は覚えることが多く感じるかもしれませんが、 一つひとつの書き方に理由があると分かれば、理解は確実に深まります。 今回学んだ内容は、React開発の土台となる重要な知識です。 繰り返しコードを書きながら、自然に使いこなせるようになっていきましょう。

先生と生徒の振り返り会話

生徒

「中かっこを使うだけで、こんなに自由に値を渡せるんですね。 最初はHTMLと同じだと思っていましたが、考え方が全然違うのが分かりました。」

先生

「そこに気づけたのはとても良いですね。 JSXは見た目に惑わされがちですが、JavaScriptとして理解するのがポイントです。」

生徒

「変数や関数を属性に渡せるようになって、 Reactで画面を作るのが少し楽しくなってきました。」

先生

「それが一番大切です。 今日学んだJSX属性の使い方は、これから状態管理やイベント処理を学ぶときにも必ず役立ちます。 焦らず、ひとつずつ積み重ねていきましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

ReactのJSXとは何ですか?HTMLとの違いはありますか?

ReactのJSXとは、JavaScriptの中にHTMLのような記述ができる特別な構文です。通常のHTMLとは異なり、JavaScriptの変数や関数を使って動的な画面を作成できるのが特徴です。
カテゴリの一覧へ
新着記事
New1
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
New2
React
PropsとStateの違いを徹底解説!使い分けのポイントまとめ
New3
React
Reactのフォーム入力を再利用しよう!初心者でもわかるフィールドコンポーネント化の考え方
New4
React
Reactでできること一覧!初心者でもわかるWebアプリ・スマホアプリ・PWAの活用方法
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.3
Java&Spring記事人気No3
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.4
Java&Spring記事人気No4
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.5
Java&Spring記事人気No5
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.6
Java&Spring記事人気No6
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.7
Java&Spring記事人気No7
React
Reactのカードコンポーネントを汎用的に設計する方法!初心者でもわかる再利用の考え方
No.8
Java&Spring記事人気No8
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!