subHeader.vue 764 B

1234567891011121314151617181920212223242526
  1. <template>
  2. <header class="user--header">
  3. <div class="sub--header--wrap">
  4. <NuxtLink to="/" class="back--btn"></NuxtLink>
  5. <h2 v-if="title">{{ title }}</h2>
  6. </div>
  7. </header>
  8. </template>
  9. <script setup>
  10. import { computed, watch } from 'vue'
  11. import { useRoute } from 'vue-router'
  12. const route = useRoute()
  13. // 동적 override (API 응답 등으로 title을 setup 이후 바꿔야 할 때)
  14. const overrideTitle = useState('page_title', () => '')
  15. // 라우트 바뀌면 override 자동 초기화 (이전 페이지 값 안 남게)
  16. watch(() => route.path, () => {
  17. overrideTitle.value = ''
  18. })
  19. // 표시할 title: override가 우선, 없으면 route.meta.title
  20. const title = computed(() => overrideTitle.value || route.meta?.title || '')
  21. </script>