Spec-Zone.ru › React 18

<title> - Эта функция доступна в последней версии Canary

Canary

Расширения React для <title> в настоящее время доступны только в каналах React canary и experimental. В стабильных выпусках React <title> работает только как встроенный браузерный HTML-компонент встроенный браузерный HTML-компонент. Узнайте больше о каналах выпуска React здесь.

Встроенный браузерный <title> компонент позволяет задать заголовок документа.

<title>My Blog</title>
  • Справочник
    • <title>
  • Использование
    • Установить заголовок документа
    • Использование переменных в заголовке

Справочник

<title>

Для задания заголовка документа используйте встроенный браузерный <title> компонент. Вы можете отобразить <title> из любого компонента, и React всегда разместит соответствующий DOM-элемент в заголовке документа.

<title>My Blog</title>

См. дополнительные примеры ниже.

Свойства

<title> поддерживает все общие свойства элементов.

  • children: <title> принимает только текст в качестве потомка. Этот текст станет заголовком документа. Вы также можете передавать собственные компоненты, при условии, что они отображают только текст.

Особое поведение при отображении

React всегда помещает DOM-элемент, соответствующий <title> компоненту, в <head> документа, независимо от того, где он отображается в дереве React. <head> — единственное допустимое местоположение <title> в DOM, но удобно поддерживать композицию, если компонент, представляющий определённую страницу, может отображать свой <title> самостоятельно.

Есть два исключения из этого правила:

  • Если <title> находится внутри <svg> компонента, специального поведения нет, потому что в этом контексте он не представляет заголовок документа, а является меткой доступности для этого SVG-графика.
  • Если <title> имеет свойство itemProp, специального поведения нет, так как в этом случае он не представляет заголовок документа, а содержит метаданные о конкретной части страницы.

Опасность

Отображайте только один <title> за раз. Если несколько компонентов отображают тег <title> одновременно, React разместит все эти заголовки в заголовке документа. В этом случае поведение браузеров и поисковых систем не определено.


Использование

Установить заголовок документа

Отобразите <title> компонент из любого компонента с текстом в качестве потомков. React поместит <title> DOM-узел в <head> документа.

import ShowRenderedHTML from './ShowRenderedHTML.js';

export default function ContactUsPage() {
  return (
    <ShowRenderedHTML>
      <title>My Site: Contact Us</title>
      <h1>Contact Us</h1>
      <p>Email us at support@example.com</p>
    </ShowRenderedHTML>
  );
}

Использование переменных в заголовке

Потомки <title> компонента должны быть одной строкой текста. (Или одним числом или одним объектом с методом toString. Не очевидно, но использование фигурных скобок JSX таким образом:

<title>Results page {pageNumber}</title> // 🔴 Problem: This is not a single string

… на самом деле приводит к тому, что <title> компоненту передаётся массив из двух элементов (строка "Results page" и значение pageNumber). Это приведёт к ошибке. Вместо этого используйте интерполяцию строк, чтобы передать <title> одну строку:

<title>{`Results page ${pageNumber}`}</title>

© 2013–present Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://18.react.dev/reference/react-dom/components/title

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API