Skip to content

Commit f6af914

Browse files
committed
Translate JSX In Depth. Corrections 3.
1 parent 46f6d7a commit f6af914

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

content/docs/jsx-in-depth.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ redirect_from:
1313
- "docs/jsx-in-depth-ko-KR.html"
1414
---
1515

16-
В принципе JSX просто предоставляет синтаксический сахар для функции `React.createElement(component, props, ...children)`. Этот JSX-код:
16+
JSX является синтаксическим сахаром для функции `React.createElement(component, props, ...children)`. Этот JSX-код:
1717

1818
```js
1919
<MyButton color="blue" shadowSize={2}>
@@ -47,13 +47,13 @@ React.createElement(
4747
)
4848
```
4949

50-
Если вы хотите проверить, как какой-нибудь определённый JSX-код компилируется в JavaScript, можете попробовать [онлайн-компилятор Babel](babel://jsx-simple-example).
50+
Если вы хотите проверить, как JSX-код компилируется в JavaScript, попробуйте [онлайн-компилятор Babel](babel://jsx-simple-example).
5151

5252
## Указание типа React-элемента {#specifying-the-react-element-type}
5353

5454
Первая часть JSX тега определяет тип React-элемента.
5555

56-
Слова в типах пишутся с большой буквы и указывают, что JSX-тег ссылается на React-компонент. Эти теги компилируются в прямые ссылки на именованные переменные, поэтому, если вы используете JSX-выражение `<Foo />`, то `Foo` должен быть в области видимости.
56+
Типы, написанные с большой буквы, указывают, что JSX-тег ссылается на React-компонент. Эти теги компилируются в прямую ссылку на именованную переменную, поэтому, если вы используете JSX-выражение `<Foo />`, то `Foo` должен быть в области видимости.
5757

5858
### React должен находиться в области видимости {#react-must-be-in-scope}
5959

@@ -135,7 +135,7 @@ function HelloWorld() {
135135

136136
### Выбор типа во время исполнения {#choosing-the-type-at-runtime}
137137

138-
Вы не можете использовать выражение как тип React-элемента. Если вы хотите использовать выражение для того, чтобы указать тип элемента, то сперва вам нужно присвоить его в переменную, начинающуюся с заглавной буквы. Часто это подходит, когда вам нужно отрендерить компонент в зависимости от ваших пропсов:
138+
В качестве типа React-элемента нельзя использовать выражение. Если вы хотите использовать выражение, чтобы указать тип элемента, присвойте его в переменную, начинающуюся с заглавной буквы. Это подходит для рендера компонентов в зависимости от ваших пропсов:
139139

140140
```js{10,11}
141141
import React from 'react';
@@ -176,13 +176,13 @@ function Story(props) {
176176

177177
### JavaScript-выражения как пропсы {#javascript-expressions-as-props}
178178

179-
Вы можете передавать любые JavaScript-выражения как пропсы, заключая их в `{}`. К примеру, в этом JSX:
179+
Вы можете передавать любые JavaScript-выражения как пропсы, обернув их в `{}`. К примеру, в этом JSX:
180180

181181
```js
182182
<MyComponent foo={1 + 2 + 3 + 4} />
183183
```
184184

185-
Для `MyComponent`, значение `props.foo` будет `10`, потому что выражение `1 + 2 + 3 + 4` будет вычислено.
185+
Для `MyComponent` значение `props.foo` будет равно `10`, потому что выражение `1 + 2 + 3 + 4` будет вычислено.
186186

187187
Оператор `if` и цикл `for` не являются выражениями в JavaScript, поэтому их нельзя непосредственно использовать в JSX. Вместо этого, вы можете окружить ими JSX-код. К примеру:
188188

@@ -210,7 +210,7 @@ function NumberDescriber(props) {
210210
<MyComponent message={'hello world'} />
211211
```
212212

213-
Когда вы передаёте строковый литерал, его значение будет HTML-"разэкранировано". Поэтому эти два JSX выражения эквивалентны:
213+
Когда вы передаёте строковый литерал, все его возможные символы будут преобразованы в соответствующие HTML-сущности. Поэтому эти два JSX-выражения будут эквивалентны:
214214

215215
```js
216216
<MyComponent message="&lt;3" />
@@ -234,7 +234,7 @@ function NumberDescriber(props) {
234234

235235
### Атрибуты расширения {#spread-attributes}
236236

237-
Если у вас уже есть `props` в виде объекта и выхотите передать их все в JSX, вы можете использовать оператор `...` («spread operator») для передачи всего объекта-пропсов целиком. Эти два компонента эквивалентны:
237+
Если у вас уже есть пропсы внутри объекта `props` и вы хотите передать их в JSX, вы можете использовать оператор расширения `...` («spread operator»). Эти два компонента эквивалентны:
238238

239239
```js{7}
240240
function App1() {
@@ -247,7 +247,7 @@ function App2() {
247247
}
248248
```
249249

250-
Вы так же можете выбрать конкретные пропсы, которые ваш компонент будет использовать, передавая все остальные пропсы с помощью spread operator.
250+
Вы так же можете выбрать конкретные пропсы, которые ваш компонент будет использовать, передавая все остальные пропсы с помощью оператора расширения.
251251

252252
```js{2}
253253
const Button = props => {
@@ -270,7 +270,7 @@ const App = () => {
270270
В приведённом выше примере, проп `kind` используется безопасно и *не* передаётся в элемент `<button>`, находящийся в DOM.
271271
Все остальные пропсы передаются с помощью объекта `...other`, что делает этот компонент очень гибким. Вы можете видеть, что он передаёт пропсы `onClick` и `children`.
272272

273-
Атрибуты расширения могут быть полезны, но они так же легко позволяют передавать ненужные пропсы в компоненты или передавать невалидные HTML атрибуты в DOM. Мы рекомендуем использовать этот синтаксис с осторожностью.
273+
Атрибуты расширения могут быть полезны, однако, также они позволяют передать ненужные пропсы в компоненты или невалидные HTML-атрибуты в DOM. Мы рекомендуем использовать этот синтаксис с осторожностью.
274274

275275
## Дочерние компоненты в JSX {#children-in-jsx}
276276

@@ -284,13 +284,13 @@ const App = () => {
284284
<MyComponent>Привет, мир!</MyComponent>
285285
```
286286

287-
Это корректный JSX-код, в котором значение `props.children` в `MyComponent` будет строкой `"Привет, мир!"`. HTML в таком коде "разэкранируется", поэтому на JSX можно писать также как и на обычном HTML:
287+
Это корректный JSX-код, в котором значение `props.children` в `MyComponent` будет строкой `"Привет, мир!"`. HTML в таком коде «разэкранируется», поэтому JSX можно писать также как HTML:
288288

289289
```html
290290
<div>This is valid HTML &amp; JSX at the same time.</div>
291291
```
292292

293-
JSX удаляет пробелы в начале и в конце строки. Он также удаляет пустые строки. Новая строка, примыкающая в тегу будет удалена; новые строки, находящиеся посередине строковых литералов, сжимаются в один пробел. Следующие три примера кода рендерят одинаковый результат:
293+
JSX удаляет пустые строки и пробелы в начале и в конце строки. Новая строка, примыкающая к тегу будет удалена. Новые строки между строковых литералов сжимаются в один пробел. Следующие три примера кода рендерят одинаковый результат:
294294

295295
```js
296296
<div>Hello World</div>
@@ -357,7 +357,7 @@ render() {
357357
<MyComponent>{'foo'}</MyComponent>
358358
```
359359

360-
Часто это бывает полезно при рендеринге списка JSX-выражений произвольной длины. Например, эта запись рендерит HTML-список:
360+
Часто это бывает полезно при рендере списка JSX-выражений произвольной длины. Например, эта запись рендерит HTML-список:
361361

362362
```js{2,9}
363363
function Item(props) {
@@ -425,7 +425,7 @@ function ListOfTenThings() {
425425
<div>{true}</div>
426426
```
427427

428-
Этот подход может быть полезным для рендеринга по условию. Вот пример, где JSX рендерит `<Header />`, если `showHeader` равняется `true`:
428+
Этот подход может быть полезным для рендера по условию. Вот пример, где JSX рендерит `<Header />`, если `showHeader` равняется `true`:
429429

430430
```js{2}
431431
<div>
@@ -434,7 +434,7 @@ function ListOfTenThings() {
434434
</div>
435435
```
436436

437-
Один нюанс заключается в том, что React будет рендерить [«ложные» (falsy) значения](https://developer.mozilla.org/en-US/docs/Glossary/Falsy), такие как число `0`. Код ниже ведёт себя не так, как вы могли ожидать, так как `0` будет отображён, если массив `props.messages` пуст:
437+
Есть один нюанс в том, что React будет рендерить [«ложные» (falsy) значения](https://developer.mozilla.org/en-US/docs/Glossary/Falsy), такие как число `0`. Код ниже ведёт себя не так, как вы могли ожидать, так как `0` будет отображён, если массив `props.messages` пуст:
438438

439439
```js{2}
440440
<div>

0 commit comments

Comments
 (0)