From 4b08780161b1416c5cadf7de00c3edc7eaa58e67 Mon Sep 17 00:00:00 2001 From: Soichiro Miki Date: Thu, 16 Dec 2021 11:26:05 +0900 Subject: [PATCH 1/3] Translate two articles (JSX and curly braces) - Writing Markup with JSX - JavaScript in JSX with Curly Braces --- .../javascript-in-jsx-with-curly-braces.md | 112 +++++++++--------- .../pages/learn/writing-markup-with-jsx.md | 90 +++++++------- 2 files changed, 101 insertions(+), 101 deletions(-) diff --git a/beta/src/pages/learn/javascript-in-jsx-with-curly-braces.md b/beta/src/pages/learn/javascript-in-jsx-with-curly-braces.md index 1b970c723..970c49716 100644 --- a/beta/src/pages/learn/javascript-in-jsx-with-curly-braces.md +++ b/beta/src/pages/learn/javascript-in-jsx-with-curly-braces.md @@ -1,25 +1,25 @@ --- -title: JavaScript in JSX with Curly Braces +title: JSX に波括弧で JavaScript を含める --- -JSX lets you write HTML-like markup inside a JavaScript file, keeping rendering logic and content in the same place. Sometimes you will want to add a little JavaScript logic or reference a dynamic property inside that markup. In this situation, you can use curly braces in your JSX to open a window to JavaScript. +JSX により、JavaScript ファイル内に HTML のようなマークアップを書いて、レンダリングロジックとコンテンツを同じ場所にまとめられるようになります。ときに、そのマークアップの中で JavaScript のロジックを書いたり動的なプロパティを参照したりしたくなることがあります。このような場合、JSX 内で波括弧を使うことで、JavaScript への入り口を開くことができます。 -* How to pass strings with quotes -* How to reference a JavaScript variable inside JSX with curly braces -* How to call a JavaScript function inside JSX with curly braces -* How to use a JavaScript object inside JSX with curly braces +* 引用符を使って文字列を渡す方法 +* 波括弧を使って JSX 内で JavaScript 変数を参照する方法 +* 波括弧を使って JSX 内で JavaScript 関数を呼び出す方法 +* 波括弧を使って JSX 内でオブジェクトを利用する方法 -## Passing strings with quotes {/*passing-strings-with-quotes*/} +## 引用符で文字列を渡す {/*passing-strings-with-quotes*/} -When you want to pass a string attribute to JSX, you put it in single or double quotes: +JSX に文字列の属性を渡したい場合、それをシングルクオートかダブルクオートで囲みます: @@ -41,9 +41,9 @@ export default function Avatar() { -Here, `"https://i.imgur.com/7vQD0fPs.jpg"` and `"Gregorio Y. Zara"` are being passed as strings. +この例では `"https://i.imgur.com/7vQD0fPs.jpg"` と `"Gregorio Y. Zara"` が文字列として渡されています。 -But what if you want to dynamically specify the `src` or `alt` text? You could **use a value from JavaScript by replacing `"` and `"` with `{` and `}`**: +では `src` や `alt` のテキストを動的に指定したい場合はどうすればいいのでしょう? **`"` と `"` を `{` と `}` に置き換えることで、JavaScript の値を使う**ことができるのです: @@ -67,11 +67,11 @@ export default function Avatar() { -Notice the difference between `className="avatar"`, which specifies an `"avatar"` CSS class name that makes the image round, and `src={avatar}` that reads the value of the JavaScript variable called `avatar`. That's because curly braces let you work with JavaScript right there in your markup! +`className="avatar"` は `"avatar"` という CSS クラス名を指定して画像を円形にしており、`src={avatar}` は `avatar` という名前の JavaScript 変数を読み出している、という違いに注意してください。波括弧を使うことで、マークアップの中で直接 JavaScript を使えるようになるからです。 -## Using curly braces: A window into the JavaScript world {/*using-curly-braces-a-window-into-the-javascript-world*/} +## 波括弧は JavaScript 世界への窓口 {/*using-curly-braces-a-window-into-the-javascript-world*/} -JSX is a special way of writing JavaScript. That means it’s possible to use JavaScript inside it—with curly braces `{ }`. The example below first declares a name for the scientist, `name`, then embeds it with curly braces inside the `

`: +JSX とは JavaScript を書く特殊な方法のひとつです。つまりその中で JavaScript が使えるということであり、そのための手段が波括弧 `{}` です。以下の例では、とある科学者の名前を `name` として宣言し、それを `

` 内に波括弧を使って埋め込んでいます: @@ -86,9 +86,9 @@ export default function TodoList() { -Try changing `name`'s value from `'Gregorio Y. Zara'` to `'Hedy Lamarr'`. See how the To Do List title changes? +`name` の値を `'Gregorio Y. Zara'` から `'Hedy Lamarr'` にしてみてください。To Do リストのタイトルが変わりましたか? -Any JavaScript expression will work between curly braces, including function calls like `formatDate()`: +波括弧の中では `formatDate()` のような関数呼び出しも含む、あらゆる JavaScript の式が動作します: @@ -111,18 +111,18 @@ export default function TodoList() { -### Where to use curly braces {/*where-to-use-curly-braces*/} +### 波括弧を使える場所 {/*where-to-use-curly-braces*/} -You can only use curly braces in two ways inside JSX: +JSX 内部で波括弧を使う方法は 2 つだけです: -1. **As text** directly inside a JSX tag: `

{name}'s To Do List

` works, but `<{tag}>Gregorio Y. Zara's To Do List` will not. -2. **As attributes** immediately following the `=` sign: `src={avatar}` will read the `avatar` variable, but `src="{avatar}"` will pass the string `{avatar}`. +1. **テキストとして**、JSX タグの中で直接使う:`

{name}'s To Do List

` は動作しますが `<{tag}>Gregorio Y. Zara's To Do List` は動作しない。 +2. **属性として**、`=` 記号の直後に使う:`src={avatar}` は `avatar` という変数を読み出すが、 `src="{avatar}"` と書くと `{avatar}` という文字列そのものを渡す。 -## Using "double curlies": CSS and other objects in JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/} +## 「ダブル波括弧」で JSX 内に CSS やその他のオブジェクトを含める {/*using-double-curlies-css-and-other-objects-in-jsx*/} -In addition to strings, numbers, and other JavaScript expressions, you can even pass objects in JSX. Objects are also denoted with curly braces, like `{ name: "Hedy Lamarr", inventions: 5 }`. Therefore, to pass a JS object in JSX, you must wrap the object in another pair of curly braces: `person={{ name: "Hedy Lamarr", inventions: 5 }}`. +文字列や数字、その他の JavaScript の式に加えて、オブジェクトを JSX に渡すこともできます。オブジェクトも波括弧を使って `{ name: "Hedy Lamarr", inventions: 5 }` のように記述しますね。ですので JS オブジェクトを JSX に渡すときには、オブジェクトを別の波括弧のペアでラップして、`person={{ name: "Hedy Lamarr", inventions: 5 }}` のようにする必要があります。 -You may see this with inline CSS styles in JSX. React does not require you to use inline styles (CSS classes work great for most cases). But when you need an inline style, you pass an object to the `style` attribute: +これは JSX 内でインラインの CSS スタイルを使うときに目にすることがあります。React でインラインスタイルを使わなければいけないわけではありません(大抵の場合は CSS クラスでうまくいきます)。しかしインラインスタイルが必要な場合は、`style` 属性にオブジェクトを渡します: @@ -148,9 +148,9 @@ ul { padding: 20px 20px 20px 40px; margin: 0; } -Try changing the values of `backgroundColor` and `color`. +`backgroundColor` や `color` の値を変更してみてください。 -You can really see the JavaScript object inside the curly braces when you write it like this: +以下のように書けば波括弧の中に書かれた JavaScript のオブジェクトがよく見えてくるでしょう: ```js {2-5}