You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Чтобы задать заголовок документа, отрендерите встроенный в браузер компонент `<title>`. Вы можете рендерить`<title>` из любого компонента, и React всегда будет помещать соответствующий DOM-элемент в `<head>` документа.
23
+
Чтобы указать заголовок документа, отрендерите [встроенный компонент `<title>` браузера](https://developer.mozilla.org/ru/docs/Web/HTML/Element/title). Вы можете отрендерить`<title>` из любого компонента, и React всегда поместит соответствующий DOM-элемент в head документа.
24
24
25
25
```js
26
26
<title>Мой блог</title>
27
27
```
28
28
29
-
[Смотрите больше примеров ниже.](#usage)
29
+
[См. больше примеров ниже.](#usage)
30
30
31
31
#### Пропсы {/*props*/}
32
32
33
33
`<title>` поддерживает все [общие пропсы элементов.](/reference/react-dom/components/common#props)
34
34
35
-
*`children`: `<title>` принимает только текст в качестве дочернего элемента. Этот текст станет заголовком документа. Вы также можете передавать собственные компоненты, если они рендерят только текст.
35
+
*`children`: `<title>` принимает только текст в качестве дочернего элемента. Этот текст станет заголовком документа. Вы также можете передать свои собственные компоненты, если они рендерят только текст.
36
36
37
-
#### Особое поведение при рендеринге {/*special-rendering-behavior*/}
37
+
#### Особое поведение рендеринга {/*special-rendering-behavior*/}
38
38
39
-
React всегда будет помещать DOM-элемент, соответствующий компоненту `<title>`, внутрь`<head>` документа, независимо от того, где в дереве React он был отрендерен. `<head>` — единственное допустимое место для `<title>` в DOM, но удобно и сохраняет композитность, если компонент, представляющий конкретную страницу, может сам рендерить свой `<title>`.
39
+
React всегда помещает DOM-элемент, соответствующий компоненту `<title>`, в`<head>` документа, независимо от того, где в дереве React он отрендерен. `<head>` — единственное допустимое место для существования `<title>` в DOM, но это удобно и сохраняет композицию, если компонент, представляющий конкретную страницу, может сам рендерить свой `<title>`.
40
40
41
-
Есть два исключения:
42
-
* Если `<title>` находится внутри компонента `<svg>`, то специального поведения нет, потому что в этом контексте он представляет собой не заголовок документа, а [аннотацию доступности для этой SVG-графики](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title).
43
-
* Если у `<title>` есть пропс [`itemProp`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/itemprop), то специального поведения нет, потому что в этом случае он представляет собой не заголовок документа, а метаданные о конкретной части страницы.
41
+
Есть два исключения из этого правила:
42
+
43
+
* Если `<title>` находится внутри компонента `<svg>`, то особого поведения нет, потому что в этом контексте он представляет не заголовок документа, а [аннотацию доступности для этой SVG-графики](https://developer.mozilla.org/ru/docs/Web/SVG/Element/title).
44
+
* Если у `<title>` есть проп [`itemProp`](https://developer.mozilla.org/ru/docs/Web/HTML/Global_attributes/itemprop), то особого поведения нет, потому что в этом случае он представляет не заголовок документа, а метаданные о конкретной части страницы.
44
45
45
46
<Pitfall>
46
47
47
-
Рендерите только один `<title>` за раз. Если несколько компонентов одновременно рендерят тег `<title>`, React поместит все эти заголовки в `<head>` документа. В этом случае поведение браузеров и поисковых систем не определено.
48
+
Рендерите только один `<title>` за раз. Если более одного компонента рендерят тег `<title>` одновременно, React поместит все эти заголовки в head документа. Когда это произойдет, поведение браузеров и поисковых систем не определено.
48
49
49
50
</Pitfall>
50
51
@@ -54,7 +55,7 @@ React всегда будет помещать DOM-элемент, соотве
54
55
55
56
### Установка заголовка документа {/*set-the-document-title*/}
56
57
57
-
Отрендерите компонент `<title>` из любого компонента с текстом в качестве дочерних элементов. React поместит DOM-узел `<title>` в `<head>` документа.
58
+
Отрендерите компонент `<title>` из любого компонента с текстом в качестве его дочерних элементов. React поместит DOM-узел `<title>` в `<head>` документа.
58
59
59
60
<SandpackWithHTMLOutput>
60
61
@@ -64,9 +65,9 @@ import ShowRenderedHTML from './ShowRenderedHTML.js';
64
65
exportdefaultfunctionContactUsPage() {
65
66
return (
66
67
<ShowRenderedHTML>
67
-
<title>Мой сайт:Контакты</title>
68
+
<title>Мой сайт:Свяжитесь с нами</title>
68
69
<h1>Свяжитесь с нами</h1>
69
-
<p>Напишите нам на support@example.com</p>
70
+
<p>Напишите нам по адресу support@example.com</p>
70
71
</ShowRenderedHTML>
71
72
);
72
73
}
@@ -76,13 +77,13 @@ export default function ContactUsPage() {
76
77
77
78
### Использование переменных в заголовке {/*use-variables-in-the-title*/}
78
79
79
-
Дочерние элементы компонента `<title>`должны быть одной строкой текста. (Или одним числом, или одним объектом с методом `toString`.) Это может быть неочевидно, но использование фигурных скобок JSX, таких как:
80
+
Дочерним элементом компонента `<title>`должна быть одна строка текста. (Или одно число, или один объект с методом `toString`.) Это может быть неочевидно, но использование фигурных скобок JSX, как это:
80
81
81
82
```js
82
-
<title>Страница результатов {pageNumber}</title>// 🔴 Проблема: Это не одна строка
83
+
<title>Страница результатов {pageNumber}</title>// 🔴 Проблема: это не одна строка
83
84
```
84
85
85
-
... на самом деле приводит к тому, что компонент `<title>` получает массив из двух элементов в качестве дочерних (строку`"Страница результатов"` и значение `pageNumber`). Это вызовет ошибку. Вместо этого используйте интерполяцию строк, чтобы передать `<title>` одну строку:
86
+
... на самом деле приводит к тому, что компонент `<title>` получает массив из двух элементов в качестве своих дочерних элементов (строка`"Страница результатов"` и значение `pageNumber`). Это вызовет ошибку. Вместо этого используйте интерполяцию строк, чтобы передать `<title>` одну строку:
86
87
87
88
```js
88
89
<title>{`Страница результатов ${pageNumber}`}</title>
0 commit comments