head로 컴포넌트 상태에 접근해야 한다면, useHead 사용으로 마이그레이션해야 합니다.
Options API를 사용해야 하는 경우, defineNuxtComponent를 사용할 때 사용할 수 있는 head() 메서드가 있습니다.
bridge.meta 설정import { defineNuxtConfig } from '@nuxt/bridge'
export default defineNuxtConfig({
bridge: {
meta: true,
nitro: false, // Nitro로의 마이그레이션이 완료되면 true로 설정
},
})
nuxt.config에서 head를 app.head로 이름을 변경하세요. (더 이상 객체에 중복 제거를 위한 hid 키가 없다는 점에 유의하세요.)
export default {
head: {
titleTemplate: '%s - Nuxt',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: 'Meta description' },
],
},
}
export default defineNuxtConfig({
app: {
head: {
titleTemplate: '%s - Nuxt',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ name: 'description', content: 'Meta description' },
],
},
},
})
useHead 컴포저블Nuxt Bridge는 새로운 useHead 컴포저블로 접근할 수 있는 새로운 Nuxt 3 메타 API를 제공합니다.
<script setup lang="ts">
useHead({
title: 'My Nuxt App',
})
</script>
useHead 와 함께 네이티브 Nuxt 2 head() 속성을 추가로 사용하는 것은 권장하지 않습니다. 충돌이 발생할 수 있습니다.이 컴포저블을 사용하는 방법에 대한 더 자세한 내용은 문서를 참고하세요.
<script>
// Options API의 `head` 메서드를 사용하는 경우 반드시 `defineNuxtComponent`를 사용해야 합니다
export default defineNuxtComponent({
head (nuxtApp) {
// `head`는 nuxt 앱을 받지만 컴포넌트 인스턴스에는 접근할 수 없습니다
return {
meta: [{
name: 'description',
content: 'This is my page description.',
}],
}
},
})
</script>
head는 nuxt 앱을 받지만 컴포넌트 인스턴스에는 접근할 수 없습니다. head 안의 코드가 this 또는 this.$data를 통해 data 객체에 접근하려고 한다면, useHead 컴포저블로 마이그레이션해야 합니다.함수(완전한 제어를 위해)를 사용하고 싶다면, 이는 nuxt.config에서 설정할 수 없으며, 대신 /layouts 디렉터리 내에서 설정하는 것을 권장합니다.
<script setup lang="ts">
useHead({
titleTemplate: (titleChunk) => {
return titleChunk ? `${titleChunk} - Site Title` : 'Site Title'
},
})
</script>