Skip to content

Commit d5fcb6c

Browse files
docs: translate writing-markup-with-jsx.md to Русский
1 parent c221df0 commit d5fcb6c

1 file changed

Lines changed: 18 additions & 19 deletions

File tree

src/content/learn/writing-markup-with-jsx.md

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
---
22
title: Написание разметки с помощью JSX
33
---
4-
54
<Intro>
65

7-
*JSX* — это синтаксическое расширение для JavaScript, которое позволяет писать разметку в стиле HTML прямо в файлах JavaScript. Хотя существуют и другие способы написания компонентов, большинство разработчиков React предпочитают краткость JSX, и большинство кодовых баз его используют.
6+
*JSX* — это синтаксическое расширение для JavaScript, которое позволяет писать разметку в стиле HTML внутри файла JavaScript. Хотя существуют и другие способы написания компонентов, большинство разработчиков React предпочитают краткость JSX, и большинство кодовых баз его используют.
87

98
</Intro>
109

@@ -16,7 +15,7 @@ title: Написание разметки с помощью JSX
1615

1716
</YouWillLearn>
1817

19-
## JSX: Встраивание разметки в JavaScript {/*jsx-putting-markup-into-javascript*/}
18+
## JSX: Разметка внутри JavaScript {/*jsx-putting-markup-into-javascript*/}
2019

2120
Веб построен на HTML, CSS и JavaScript. Долгие годы веб-разработчики хранили контент в HTML, дизайн — в CSS, а логику — в JavaScript, часто в отдельных файлах! Контент размечался внутри HTML, в то время как логика страницы жила отдельно в JavaScript:
2221

@@ -36,27 +35,27 @@ JavaScript
3635

3736
</DiagramGroup>
3837

39-
Но по мере того, как веб становился более интерактивным, логика всё чаще определяла контент. JavaScript отвечал за HTML! Именно поэтому **в React логика рендеринга и разметка находятся вместе в одном месте — компонентах.**
38+
Но по мере того, как веб становился более интерактивным, логика всё чаще определяла контент. JavaScript отвечал за HTML! Именно поэтому **в React логика рендеринга и разметка живут вместе в одном месте — компонентах.**
4039

4140
<DiagramGroup>
4241

43-
<Diagram name="writing_jsx_sidebar" height={330} width={325} alt="React-компонент со смешанным HTML и JavaScript из предыдущих примеров. Имя функции - Sidebar, которая вызывает функцию isLoggedIn, выделенную желтым цветом. Внутри функции, выделенной фиолетовым, находится тег p из предыдущего примера и тег Form, ссылающийся на компонент, показанный на следующем рисунке.">
42+
<Diagram name="writing_jsx_sidebar" height={330} width={325} alt="React-компонент со смешанным HTML и JavaScript из предыдущих примеров. Имя функции Sidebar, которая вызывает функцию isLoggedIn, выделенную желтым цветом. Внутри функции, выделенной фиолетовым, находится тег p из предыдущего примера и тег Form, ссылающийся на компонент, показанный на следующем рисунке.">
4443

4544
React-компонент `Sidebar.js`
4645

4746
</Diagram>
4847

49-
<Diagram name="writing_jsx_form" height={330} width={325} alt="React-компонент со смешанным HTML и JavaScript из предыдущих примеров. Имя функции - Form, содержащее два обработчика onClick и onSubmit, выделенных желтым цветом. После обработчиков идет HTML, выделенный фиолетовым цветом. HTML содержит элемент form с вложенным элементом input, каждый из которых имеет проп onClick.">
48+
<Diagram name="writing_jsx_form" height={330} width={325} alt="React-компонент со смешанным HTML и JavaScript из предыдущих примеров. Имя функции Form, содержащее два обработчика onClick и onSubmit, выделенных желтым цветом. После обработчиков следует HTML, выделенный фиолетовым. HTML содержит элемент form с вложенным элементом input, каждый из которых имеет пропс onClick.">
5049

5150
React-компонент `Form.js`
5251

5352
</Diagram>
5453

5554
</DiagramGroup>
5655

57-
Сохранение логики рендеринга кнопки и её разметки вместе гарантирует, что они будут синхронизированы при каждом изменении. И наоборот, несвязанные детали, такие как разметка кнопки и разметка боковой панели, изолированы друг от друга, что делает их изменение по отдельности более безопасным.
56+
Совместное хранение логики рендеринга кнопки и её разметки гарантирует, что они будут синхронизированы при каждом изменении. И наоборот, несвязанные детали, такие как разметка кнопки и разметка боковой панели, изолированы друг от друга, что делает их изменение по отдельности более безопасным.
5857

59-
Каждый React-компонент — это JavaScript-функция, которая может содержать разметку, которую React отображает в браузере. React-компоненты используют синтаксическое расширение под названием JSX для представления этой разметки. JSX очень похож на HTML, но он немного строже и может отображать динамическую информацию. Лучший способ понять это — преобразовать некоторую HTML-разметку в JSX-разметку.
58+
Каждый React-компонент — это функция JavaScript, которая может содержать разметку, которую React отображает в браузере. React-компоненты используют синтаксическое расширение под названием JSX для представления этой разметки. JSX очень похож на HTML, но он немного строже и может отображать динамическую информацию. Лучший способ понять это — преобразовать некоторую HTML-разметку в JSX-разметку.
6059

6160
<Note>
6261

@@ -82,7 +81,7 @@ JSX и React — это две разные вещи. Они часто испо
8281
</ul>
8382
```
8483

85-
И вы хотите вставить его в свой компонент:
84+
И вы хотите поместить его в свой компонент:
8685

8786
```js
8887
export default function TodoList() {
@@ -122,11 +121,11 @@ img { height: 90px }
122121
123122
</Sandpack>
124123
125-
Это связано с тем, что JSX строже и имеет несколько больше правил, чем HTML! Если вы прочитаете сообщения об ошибках выше, они помогут вам исправить разметку, или вы можете следовать приведенному ниже руководству.
124+
Это потому, что JSX строже и имеет несколько больше правил, чем HTML! Если вы прочитаете сообщения об ошибках выше, они помогут вам исправить разметку, или вы можете следовать приведенному ниже руководству.
126125
127126
<Note>
128127
129-
В большинстве случаев сообщения об ошибках React на экране помогут вам найти проблему. Прочитайте их, если застряли!
128+
В большинстве случаев сообщения об ошибках React на экране помогут вам найти проблему. Прочитайте их, если застрянете!
130129
131130
</Note>
132131
@@ -153,7 +152,7 @@ img { height: 90px }
153152
```
154153
155154
156-
Если вы не хотите добавлять лишний `<div>` в свою разметку, вы можете использовать вместо него `<>` и `</>`:
155+
Если вы не хотите добавлять лишний `<div>` в свою разметку, вы можете вместо этого использовать `<>` и `</>`:
157156
158157
```js {1,11}
159158
<>
@@ -181,7 +180,7 @@ JSX выглядит как HTML, но под капотом он преобра
181180
182181
### 2. Закрывайте все теги {/*2-close-all-the-tags*/}
183182
184-
JSX требует явного закрытия тегов: теги с самозакрытием, такие как `<img>`, должны стать `<img />`, а оборачивающие теги, такие как `<li>oranges`, должны быть написаны как `<li>oranges</li>`.
183+
JSX требует явного закрытия тегов: самозакрывающиеся теги, такие как `<img>`, должны стать `<img />`, а оборачивающие теги, такие как `<li>oranges`, должны быть написаны как `<li>oranges</li>`.
185184
186185
Вот как выглядят закрытые изображение и элементы списка Хеди Ламарр:
187186
@@ -200,11 +199,11 @@ JSX требует явного закрытия тегов: теги с сам
200199
</>
201200
```
202201
203-
### 3. camelCase <s>все</s> почти всё! {/*3-camelcase-salls-most-of-the-things*/}
202+
### 3. camelCase <s>все</s> большинство вещей! {/*3-camelcase-salls-most-of-the-things*/}
204203
205-
JSX преобразуется в JavaScript, а атрибуты, написанные в JSX, становятся ключами объектов JavaScript. В ваших собственных компонентах вы часто захотите считывать эти атрибуты в переменные. Но у JavaScript есть ограничения на имена переменных. Например, их имена не могут содержать дефисы или быть зарезервированными словами, такими как `class`.
204+
JSX преобразуется в JavaScript, а атрибуты, написанные в JSX, становятся ключами объектов JavaScript. В ваших собственных компонентах вы часто захотите считывать эти атрибуты в переменные. Но JavaScript имеет ограничения на имена переменных. Например, их имена не могут содержать дефисы или быть зарезервированными словами, такими как `class`.
206205
207-
Именно поэтому в React многие атрибуты HTML и SVG пишутся в camelCase. Например, вместо `stroke-width` вы используете `strokeWidth`. Поскольку `class` является зарезервированным словом, в React вместо него используется `className`, названный в честь [соответствующего свойства DOM](https://developer.mozilla.org/en-US/docs/Web/API/Element/className):
206+
Именно поэтому в React многие атрибуты HTML и SVG пишутся в camelCase. Например, вместо `stroke-width` вы используете `strokeWidth`. Поскольку `class` является зарезервированным словом, в React вместо него используется `className`, названный в честь [соответствующего DOM-свойства](https://developer.mozilla.org/en-US/docs/Web/API/Element/className):
208207
209208
```js {4}
210209
<img
@@ -222,9 +221,9 @@ JSX преобразуется в JavaScript, а атрибуты, написа
222221
223222
</Pitfall>
224223
225-
### Профессиональный совет: Используйте конвертер JSX {/*pro-tip-use-a-jsx-converter*/}
224+
### Профессиональный совет: Используйте JSX-конвертер {/*pro-tip-use-a-jsx-converter*/}
226225
227-
Преобразование всех этих атрибутов в существующей разметке может быть утомительным! Мы рекомендуем использовать [конвертер](https://transform.tools/html-to-jsx) для преобразования вашего существующего HTML и SVG в JSX. Конвертеры очень полезны на практике, но все же стоит понимать, что происходит, чтобы вы могли уверенно писать JSX самостоятельно.
226+
Преобразование всех этих атрибутов в существующей разметке может быть утомительным! Мы рекомендуем использовать [конвертер](https://transform.tools/html-to-jsx) для перевода вашего существующего HTML и SVG в JSX. Конвертеры очень полезны на практике, но все же стоит понимать, что происходит, чтобы вы могли уверенно писать JSX самостоятельно.
228227
229228
Вот ваш окончательный результат:
230229
@@ -272,7 +271,7 @@ img { height: 90px }
272271

273272
#### Преобразуйте HTML в JSX {/*convert-some-html-to-jsx*/}
274273

275-
Этот HTML был вставлен в компонент, но это не валидный JSX. Исправьте его:
274+
Этот HTML был вставлен в компонент, но он не является валидным JSX. Исправьте его:
276275

277276
<Sandpack>
278277

0 commit comments

Comments
 (0)