introduction
假设我们暴露了一个内置组件head
并向页面追加元素 …
import Head from 'next/head'
function IndexPage() {
return (
<div>
<Head>
<title>My page title</title>
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
</Head>
<p>Hello world!</p>
</div>
)
}
export default IndexPage
为了避免head
中重复的标签,你能够使用key
属性,这确保标签仅被渲染一次,如下实例所示:
import Head from 'next/head'
function IndexPage() {
return (
<div>
<Head>
<title>My page title</title>
<meta property="og:title" content="My page title" key="title" />
</Head>
<Head>
<meta property="og:title" content="My new title" key="title" />
</Head>
<p>Hello world!</p>
</div>
)
}
export default IndexPage
head
的内容在卸载组件的时候会清除,因此确保每一个页面完整的定义head
中到底需要那些,不用假设那些是其他页面增加的 …
title
,meta
或者任何其他元素(例如script
) 需要包含为Head
元素的直接子元素,或者包装在只有一个级别<React.Fragment>
或者数组 - 否则这些标签不会在客户端导航时正确的捆绑 ..
我们推荐使用next/script
在你的组件而不是手动在next/head
中创建<script>