컴포넌트
내장 브라우저 <title>
컴포넌트는 문서의 제목(title)을 지정할 수 있게 해줍니다.
<title>My Blog</title>
- 레퍼런스
- 사용법
- 문서 제목 설정하기
- 변수로 제목 지정하기
레퍼런스
<title>
문서의 제목을 지정하려면 내장 브라우저 <title>
컴포넌트를 렌더링하세요. 어떤 컴포넌트에서든 <title>
을 렌더링할 수 있으며, React는 항상 해당 DOM 요소를 문서의 <head>
에 배치합니다.
<title>My Blog</title>
아래 예시를 참고하세요.
Props
<title>
는 모든 공통 요소 속성을 지원합니다.
children
:<title>
은 자식으로 오직 텍스트만 허용합니다. 이 텍스트가 문서의 제목이 됩니다. (컴포넌트로 전달해도, 해당 컴포넌트가 텍스트만 렌더링한다면 허용됩니다.)
특별한 렌더링 동작
React는 <title>
컴포넌트에 해당하는 DOM 요소를 React 트리의 어디에 렌더링하든 항상 문서의 <head>
에 배치합니다. <head>
는 DOM 내에서 <title>
이 위치할 수 있는 유일한 위치이지만, 특정 페이지를 나타내는 컴포넌트가 <title>
을 자체적으로 렌더링할 수 있다면 편리하고 구성이 용이합니다.
예외:
<title>
이<svg>
컴포넌트 내부에 있으면 특별 동작이 없습니다. 이 경우 문서의 제목이 아니라 SVG 그래픽의 접근성 주석으로 사용됩니다.<title>
에itemProp
prop이 있으면 특별 동작이 없습니다. 이 경우 문서의 제목이 아니라 특정 부분의 메타데이터로 취급합니다.
주의사항
한 번에 하나의 <title>
만 렌더링하세요. 여러 컴포넌트가 동시에 <title>
태그를 렌더링하면 React는 모든 제목을 문서 head에 배치합니다. 이 경우 브라우저와 검색 엔진의 동작은 정의되어 있지 않습니다.
사용법
문서 제목 설정하기
어떤 컴포넌트에서든 자식으로 텍스트를 전달하여 <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>
의 children은 반드시 하나의 문자열이어야 합니다. (또는 하나의 숫자, 또는 toString 메서드를 가진 객체)
아래와 같이 JSX 중괄호를 사용하면:
<title>Results page {pageNumber}</title> // 🔴 문제: 이 경우 children이 두 개의 배열이 됨
이렇게 하면 children이 문자열 "Results page"와 pageNumber 값, 두 개의 배열이 되어 오류가 발생합니다. 대신 문자열 보간법을 사용해 하나의 문자열로 전달하세요:
<title>{`Results page ${pageNumber}`}</title>