From 0b4a8c863a91bcb83c69169ec04994ff3d90089a Mon Sep 17 00:00:00 2001 From: Kohei TAKATA Date: Thu, 25 Jun 2015 14:46:19 +0900 Subject: [PATCH] Translate 02.1-jsx-in-depth.ja-JP.md to Japanese --- docs/02.1-jsx-in-depth.ja-JP.md | 219 ++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 docs/02.1-jsx-in-depth.ja-JP.md diff --git a/docs/02.1-jsx-in-depth.ja-JP.md b/docs/02.1-jsx-in-depth.ja-JP.md new file mode 100644 index 00000000..2809412a --- /dev/null +++ b/docs/02.1-jsx-in-depth.ja-JP.md @@ -0,0 +1,219 @@ +--- +id: jsx-in-depth +title: JSXの深層 +permalink: jsx-in-depth-ja-JP.html +prev: displaying-data-ja-JP.html +next: jsx-spread-ja_JP.html +--- + +[JSX](https://facebook.github.io/jsx/)はXMLに似たJavaScriptのシンタックスの拡張です。Reactでは、単純なJSXのシンタックスの変換を使うことができます。 + +## なぜJSXを使うのでしょうか? + +ReactでJSXの使用を強制されるわけではありません。生のJSを使うこともできます。しかし、JSXは簡潔で、木構造とReactの特性を定義しやすいシンタックスであるため、JSXを使うことをお勧めします。 + +デザイナーのようなカジュアルな開発者にとってはさらに馴染みやすいでしょう。 + +XMLにはバランスの取れた開始タグと終了タグという利益があります。このことで、関数がオブジェクトリテラルを呼んでいるのを読むよりも簡単に大きな木構造を作ることができます。 + +これはJavaScriptのセマンティックスを代替するものではありません。 + +## HTMLタグ対Reactコンポーネント + +ReactはHTMLタグ(文字列)とReactコンポーネント(クラス)の両方をレンダリングすることができます。 + +以下のようにJSXで小文字のタグ名を使用するだけで、HTMLタグをレンダリングできます。 + +```javascript +var myDivElement =
; +React.render(myDivElement, document.getElementById('example')); +``` + +以下のように大文字から始まるローカル変数を作成するだけで、Reactのコンポーネントをレンダリングできます。 + +```javascript +var MyComponent = React.createClass({/*...*/}); +var myElement = ; +React.render(myElement, document.getElementById('example')); +``` + +ReactのJSXは大文字と小文字を使うことで、ローカルのコンポーネントクラスとHTMLタグを識別する習慣があります。 + +> 注意: +> +> JSXはJavaScriptなので、 `class` や `for` といった識別子はXMLの属性名としては使用しません。代わりに、 ReactのDOMコンポーネントはDOMのプロパティ名がそれぞれ `className` や `htmlFor` といったものであることを期待します。 + +## The Transform + +ReactのJSXはXMLに似たシンタックスをネイティブなJavaScriptに変換します。XML要素や属性や子要素は `React.createElement` で渡される引数に変換されます。 + +```javascript +var Nav; +// 入力 (JSX): +var app =