兵どもが、夢のあとさき

JavaScript 系の言語に興味を惹かれ、まったりと更新しております

Reactって何だー(JSX、props編)

photo at Rebun island

JSXとは

 JSX とはなんでしょうか。JSX とは、JavaScript + XML の略で、JavaScript の拡張構文です。UI がどのような見た目かを記述するために、React で JSX を使用することは必須と言って良いでしょう。基本的な形式は、

function コンポーネント名(引数) {
 /*
  JavaScript

 */

 return (
  HTML文
 )
}

となります。

 それでは、簡単な JSX 構文のプログラムを作成してみましょう。プロジェクト名は jsx としましょう。

 ターミナルを立ち上げ、react フォルダに戻ります。ここで、\react> npx create-react-app jsx でプロジェクトを作成します。しばらく、コーヒータイムです。

VSCode で、「フォルダを開く」で jsx フォルダを選択して開きます。下記の画面になります。(publicフォルダと、srcフォルダは展開しました)

ここで App.js を開きます。

 これが、JSX の雛型です。
 コンポーネントを作成します。(6~8行目、呼び出しは25行目)

結果は、

の様に、’Hello!!’ がコンソールに表示されました。

props を使用して引数をコンポーネントに渡す

 次の様に、プログラムを変更します。(6 及び 25行目)

 props というオブジェクトで引数を受け取っています。25行目で name='Hello!!' を渡していますので、受け側は、props.name という形でそのデータを受け取ることができます。props に渡す変数は、文字列、数字、関数、コンポーネント、オブジェクト何でも引き渡すことが可能です。複数の引数を渡したい場合には、下記の様に呼び出し側をスペースで区切ってください。

 一点注意ですが、props は親コンポーネントから、子コンポーネントへ渡される引数であり、逆はありません。また、props という名称は、特に決まった名称ではなく、hikisuu でも hennsuu でも何でも構いませんが、ただ、React では props という名称を使うことが慣例となっていますので、可読性を考慮した場合、props を使用することが良いでしょう(なお、props は properties の略で、財産、資産という意味です)。

 また、今更になりますがコンポーネントの名称の頭文字は必ず大文字にして下さい。<hello /> では認識されません。function hello() も同様です。