Skip to content

Commit 8cf61bf

Browse files
docs: translate javascript-in-jsx-with-curly-braces.md to Русский
1 parent 2958f53 commit 8cf61bf

1 file changed

Lines changed: 56 additions & 56 deletions

File tree

src/content/learn/javascript-in-jsx-with-curly-braces.md

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@ title: JavaScript in JSX with Curly Braces
44

55
<Intro>
66

7-
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.
7+
JSX позволяет писать разметку в стиле HTML прямо в файле JavaScript, сохраняя логику рендеринга и контент в одном месте. Иногда вам захочется добавить немного JavaScript-логики или сослаться на динамическое свойство внутри этой разметки. В такой ситуации вы можете использовать фигурные скобки в вашем JSX, чтобы открыть окно в JavaScript.
88

99
</Intro>
1010

1111
<YouWillLearn>
1212

13-
* How to pass strings with quotes
14-
* How to reference a JavaScript variable inside JSX with curly braces
15-
* How to call a JavaScript function inside JSX with curly braces
16-
* How to use a JavaScript object inside JSX with curly braces
13+
* Как передавать строки в кавычках
14+
* Как ссылаться на переменную JavaScript внутри JSX с помощью фигурных скобок
15+
* Как вызывать функцию JavaScript внутри JSX с помощью фигурных скобок
16+
* Как использовать объект JavaScript внутри JSX с помощью фигурных скобок
1717

1818
</YouWillLearn>
1919

20-
## Passing strings with quotes {/*passing-strings-with-quotes*/}
20+
## Передача строк в кавычках {/*passing-strings-with-quotes*/}
2121

22-
When you want to pass a string attribute to JSX, you put it in single or double quotes:
22+
Когда вы хотите передать строковый атрибут в JSX, вы заключаете его в одинарные или двойные кавычки:
2323

2424
<Sandpack>
2525

@@ -41,9 +41,9 @@ export default function Avatar() {
4141

4242
</Sandpack>
4343

44-
Here, `"https://i.imgur.com/7vQD0fPs.jpg"` and `"Gregorio Y. Zara"` are being passed as strings.
44+
Здесь `"https://i.imgur.com/7vQD0fPs.jpg"` и `"Gregorio Y. Zara"` передаются как строки.
4545

46-
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 `}`**:
46+
Но что, если вы хотите динамически указать `src` или `alt` текст? Вы можете **использовать значение из JavaScript, заменив `"` и `"` на `{` и `}`**:
4747

4848
<Sandpack>
4949

@@ -67,11 +67,11 @@ export default function Avatar() {
6767

6868
</Sandpack>
6969

70-
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!
70+
Обратите внимание на разницу между `className="avatar"`, который указывает CSS-класс `"avatar"`, делающий изображение круглым, и `src={avatar}`, который считывает значение переменной JavaScript с именем `avatar`. Это потому, что фигурные скобки позволяют вам работать с JavaScript прямо в вашей разметке!
7171

72-
## Using curly braces: A window into the JavaScript world {/*using-curly-braces-a-window-into-the-javascript-world*/}
72+
## Использование фигурных скобок: окно в мир JavaScript {/*using-curly-braces-a-window-into-the-javascript-world*/}
7373

74-
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 `<h1>`:
74+
JSX — это особый способ написания JavaScript. Это означает, что внутри него можно использовать JavaScript — с помощью фигурных скобок `{ }`. В приведенном ниже примере сначала объявляется имя ученого `name`, а затем оно встраивается с помощью фигурных скобок в `<h1>`:
7575

7676
<Sandpack>
7777

@@ -86,9 +86,9 @@ export default function TodoList() {
8686
8787
</Sandpack>
8888
89-
Try changing the `name`'s value from `'Gregorio Y. Zara'` to `'Hedy Lamarr'`. See how the list title changes?
89+
Попробуйте изменить значение `name` с `'Gregorio Y. Zara'` на `'Hedy Lamarr'`. Видите, как меняется заголовок списка?
9090
91-
Any JavaScript expression will work between curly braces, including function calls like `formatDate()`:
91+
Любое выражение JavaScript будет работать между фигурными скобками, включая вызовы функций, такие как `formatDate()`:
9292
9393
<Sandpack>
9494
@@ -111,18 +111,18 @@ export default function TodoList() {
111111
112112
</Sandpack>
113113
114-
### Where to use curly braces {/*where-to-use-curly-braces*/}
114+
### Где использовать фигурные скобки {/*where-to-use-curly-braces*/}
115115
116-
You can only use curly braces in two ways inside JSX:
116+
Вы можете использовать фигурные скобки в JSX только двумя способами:
117117
118-
1. **As text** directly inside a JSX tag: `<h1>{name}'s To Do List</h1>` works, but `<{tag}>Gregorio Y. Zara's To Do List</{tag}>` will not.
119-
2. **As attributes** immediately following the `=` sign: `src={avatar}` will read the `avatar` variable, but `src="{avatar}"` will pass the string `"{avatar}"`.
118+
1. **Как текст** непосредственно внутри JSX-тега: `<h1>{name}'s To Do List</h1>` работает, но `<{tag}>Gregorio Y. Zara's To Do List</{tag}>` — нет.
119+
2. **Как атрибуты** сразу после знака `=` : `src={avatar}` прочитает переменную `avatar`, но `src="{avatar}"` передаст строку `"{avatar}"`.
120120
121-
## Using "double curlies": CSS and other objects in JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/}
121+
## Использование «двойных фигурных скобок»: CSS и другие объекты в JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/}
122122
123-
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 }}`.
123+
Помимо строк, чисел и других выражений JavaScript, вы можете даже передавать объекты в JSX. Объекты также обозначаются фигурными скобками, например `{ name: "Hedy Lamarr", inventions: 5 }`. Поэтому, чтобы передать объект JS в JSX, вы должны заключить объект в еще одну пару фигурных скобок: `person={{ name: "Hedy Lamarr", inventions: 5 }}`.
124124
125-
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:
125+
Вы можете увидеть это с встроенными стилями CSS в JSX. React не требует использования встроенных стилей (CSS-классы отлично подходят для большинства случаев). Но когда вам нужен встроенный стиль, вы передаете объект атрибуту `style`:
126126
127127
<Sandpack>
128128
@@ -148,9 +148,9 @@ ul { padding: 20px 20px 20px 40px; margin: 0; }
148148
149149
</Sandpack>
150150
151-
Try changing the values of `backgroundColor` and `color`.
151+
Попробуйте изменить значения `backgroundColor` и `color`.
152152
153-
You can really see the JavaScript object inside the curly braces when you write it like this:
153+
Вы действительно можете увидеть объект JavaScript внутри фигурных скобок, когда пишете его так:
154154
155155
```js {2-5}
156156
<ul style={
@@ -161,17 +161,17 @@ You can really see the JavaScript object inside the curly braces when you write
161161
}>
162162
```
163163
164-
The next time you see `{{` and `}}` in JSX, know that it's nothing more than an object inside the JSX curlies!
164+
В следующий раз, когда вы увидите `{{` и `}}` в JSX, знайте, что это не более чем объект внутри фигурных скобок JSX!
165165
166166
<Pitfall>
167167
168-
Inline `style` properties are written in camelCase. For example, HTML `<ul style="background-color: black">` would be written as `<ul style={{ backgroundColor: 'black' }}>` in your component.
168+
Свойства встроенного `style` пишутся в camelCase. Например, HTML `<ul style="background-color: black">` будет записан как `<ul style={{ backgroundColor: 'black' }}>` в вашем компоненте.
169169
170170
</Pitfall>
171171
172-
## More fun with JavaScript objects and curly braces {/*more-fun-with-javascript-objects-and-curly-braces*/}
172+
## Больше возможностей с объектами JavaScript и фигурными скобками {/*more-fun-with-javascript-objects-and-curly-braces*/}
173173
174-
You can move several expressions into one object, and reference them in your JSX inside curly braces:
174+
Вы можете объединить несколько выражений в один объект и ссылаться на них в вашем JSX внутри фигурных скобок:
175175
176176
<Sandpack>
177177
@@ -211,7 +211,7 @@ body > div > div { padding: 20px; }
211211

212212
</Sandpack>
213213

214-
In this example, the `person` JavaScript object contains a `name` string and a `theme` object:
214+
В этом примере объект JavaScript `person` содержит строку `name` и объект `theme`:
215215

216216
```js
217217
const person = {
@@ -223,31 +223,31 @@ const person = {
223223
};
224224
```
225225

226-
The component can use these values from `person` like so:
226+
Компонент может использовать эти значения из `person` следующим образом:
227227

228228
```js
229229
<div style={person.theme}>
230230
<h1>{person.name}'s Todos</h1>
231231
```
232232
233-
JSX is very minimal as a templating language because it lets you organize data and logic using JavaScript.
233+
JSX очень минималистичен как язык шаблонов, потому что он позволяет организовывать данные и логику с помощью JavaScript.
234234
235235
<Recap>
236236
237-
Now you know almost everything about JSX:
237+
Теперь вы знаете почти все о JSX:
238238
239-
* JSX attributes inside quotes are passed as strings.
240-
* Curly braces let you bring JavaScript logic and variables into your markup.
241-
* They work inside the JSX tag content or immediately after `=` in attributes.
242-
* `{{` and `}}` is not special syntax: it's a JavaScript object tucked inside JSX curly braces.
239+
* Атрибуты JSX в кавычках передаются как строки.
240+
* Фигурные скобки позволяют вставлять логику и переменные JavaScript в вашу разметку.
241+
* Они работают внутри содержимого JSX-тега или сразу после `=` в атрибутах.
242+
* `{{` и `}}` — это не специальный синтаксис: это объект JavaScript, помещенный внутрь фигурных скобок JSX.
243243
244244
</Recap>
245245
246246
<Challenges>
247247
248-
#### Fix the mistake {/*fix-the-mistake*/}
248+
#### Исправьте ошибку {/*fix-the-mistake*/}
249249
250-
This code crashes with an error saying `Objects are not valid as a React child`:
250+
Этот код выдает ошибку `Objects are not valid as a React child`:
251251
252252
<Sandpack>
253253
@@ -287,15 +287,15 @@ body > div > div { padding: 20px; }
287287

288288
</Sandpack>
289289

290-
Can you find the problem?
290+
Можете ли вы найти проблему?
291291

292-
<Hint>Look for what's inside the curly braces. Are we putting the right thing there?</Hint>
292+
<Hint>Посмотрите, что находится внутри фигурных скобок. Правильное ли мы туда поместили?</Hint>
293293

294294
<Solution>
295295

296-
This is happening because this example renders *an object itself* into the markup rather than a string: `<h1>{person}'s Todos</h1>` is trying to render the entire `person` object! Including raw objects as text content throws an error because React doesn't know how you want to display them.
296+
Это происходит потому, что в этом примере *сам объект* рендерится в разметку, а не строка: `<h1>{person}'s Todos</h1>` пытается отрендерить весь объект `person`! Включение необработанных объектов в качестве текстового содержимого вызывает ошибку, потому что React не знает, как вы хотите их отобразить.
297297

298-
To fix it, replace `<h1>{person}'s Todos</h1>` with `<h1>{person.name}'s Todos</h1>`:
298+
Чтобы исправить это, замените `<h1>{person}'s Todos</h1>` на `<h1>{person.name}'s Todos</h1>`:
299299

300300
<Sandpack>
301301

@@ -337,9 +337,9 @@ body > div > div { padding: 20px; }
337337
338338
</Solution>
339339
340-
#### Extract information into an object {/*extract-information-into-an-object*/}
340+
#### Извлеките информацию в объект {/*extract-information-into-an-object*/}
341341
342-
Extract the image URL into the `person` object.
342+
Извлеките URL изображения в объект `person`.
343343
344344
<Sandpack>
345345
@@ -381,7 +381,7 @@ body > div > div { padding: 20px; }
381381

382382
<Solution>
383383

384-
Move the image URL into a property called `person.imageUrl` and read it from the `<img>` tag using the curlies:
384+
Переместите URL изображения в свойство `person.imageUrl` и считайте его из тега `<img>`, используя фигурные скобки:
385385

386386
<Sandpack>
387387

@@ -424,13 +424,13 @@ body > div > div { padding: 20px; }
424424
425425
</Solution>
426426
427-
#### Write an expression inside JSX curly braces {/*write-an-expression-inside-jsx-curly-braces*/}
427+
#### Напишите выражение внутри фигурных скобок JSX {/*write-an-expression-inside-jsx-curly-braces*/}
428428
429-
In the object below, the full image URL is split into four parts: base URL, `imageId`, `imageSize`, and file extension.
429+
В приведенном ниже объекте полный URL изображения разделен на четыре части: базовый URL, `imageId`, `imageSize` и расширение файла.
430430
431-
We want the image URL to combine these attributes together: base URL (always `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`), and file extension (always `'.jpg'`). However, something is wrong with how the `<img>` tag specifies its `src`.
431+
Мы хотим, чтобы URL изображения объединял эти атрибуты: базовый URL (всегда `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`) и расширение файла (всегда `'.jpg'`). Однако в том, как тег `<img>` указывает свой `src`, есть ошибка.
432432

433-
Can you fix it?
433+
Можете ли вы это исправить?
434434

435435
<Sandpack>
436436

@@ -474,15 +474,15 @@ body > div > div { padding: 20px; }
474474

475475
</Sandpack>
476476

477-
To check that your fix worked, try changing the value of `imageSize` to `'b'`. The image should resize after your edit.
477+
Чтобы проверить, сработал ли ваш фикс, попробуйте изменить значение `imageSize` на `'b'`. Изображение должно измениться в размере после вашего редактирования.
478478

479479
<Solution>
480480

481-
You can write it as `src={baseUrl + person.imageId + person.imageSize + '.jpg'}`.
481+
Вы можете написать это как `src={baseUrl + person.imageId + person.imageSize + '.jpg'}`.
482482

483-
1. `{` opens the JavaScript expression
484-
2. `baseUrl + person.imageId + person.imageSize + '.jpg'` produces the correct URL string
485-
3. `}` closes the JavaScript expression
483+
1. `{` открывает выражение JavaScript
484+
2. `baseUrl + person.imageId + person.imageSize + '.jpg'` создает правильную строку URL
485+
3. `}` закрывает выражение JavaScript
486486

487487
<Sandpack>
488488

@@ -525,7 +525,7 @@ body > div > div { padding: 20px; }
525525

526526
</Sandpack>
527527

528-
You can also move this expression into a separate function like `getImageUrl` below:
528+
Вы также можете вынести это выражение в отдельную функцию, как `getImageUrl` ниже:
529529

530530
<Sandpack>
531531

@@ -580,8 +580,8 @@ body > div > div { padding: 20px; }
580580

581581
</Sandpack>
582582

583-
Variables and functions can help you keep the markup simple!
583+
Переменные и функции могут помочь вам сохранить разметку простой!
584584

585585
</Solution>
586586

587-
</Challenges>
587+
</Challenges>

0 commit comments

Comments
 (0)