- 配置参考 Configuration
- 入门指南
- 介绍 Introduction
- 安装 Installation
- 配置 Configuration
- 视图 Views
- 资产 Assets
- 路由 Routing
- SEO and Meta
- 过渡 Transitions
- 数据获取 Data Fetching
- 状态管理 State Management
- 错误处理 Error handling
- 层结构 Layers
- 部署 Deployment
- 测试 Testing
- 升级指南 Upgrade Guide
- 核心概念
- 自动导入 Auto imports
- Vue.Js Vue.js Development
- 渲染模式 Rendering Modes
- 服务端引擎 Server Engine
- 模块化 Modules
- ES模块 ES Modules
- TypeScript TypeScript
- 目录结构
- 可组合项
- 组件
- 工具库
- fetch
- abortNavigation
- addRouteMiddleware
- clearError
- clearNuxtData
- createError
- defineNuxtComponent
- defineNuxtRouteMiddleware
- definePageMeta
- navigateTo
- onBeforeRouteLeave
- onBeforeRouteUpdate
- onNuxtReady
- prefetchComponents
- preloadComponents
- preloadRouteComponents
- refreshNuxtData
- reloadNuxtApp
- setPageLayout
- setResponseStatus
- showError
- updateAppConfig
- CLI 命令
- 进阶
- 深入探究
- 迁移指南
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
definePageMeta
definePageMeta
是一个编译器宏,您可以使用它为位于 pages/
目录中的 page 组件设置元数据(除非 另行设置)。 通过这种方式,您可以为 Nuxt 应用程序的每个静态或动态路由设置自定义元数据。
<script setup>
definePageMeta({
layout: 'default'
})
</script>
相关阅读:dirs > pages > #page-metadataType
tsdefinePageMeta(meta: PageMeta) => void
interface PageMeta {
validate?: (route: RouteLocationNormalized) => boolean | Promise<boolean> | Partial<NuxtError> | Promise<Partial<NuxtError>>
redirect?: RouteRecordRedirectOption
alias?: string | string[]
pageTransition?: boolean | TransitionProps
layoutTransition?: boolean | TransitionProps
key?: false | string | ((route: RouteLocationNormalizedLoaded) => string)
keepalive?: boolean | KeepAliveProps
layout?: false | LayoutKey | Ref<LayoutKey> | ComputedRef<LayoutKey>
middleware?: MiddlewareKey | NavigationGuard | Array<MiddlewareKey | NavigationGuard>
[key: string]: any
}
参数
meta - Type: PageMeta
基本用法
下面的示例演示:\
key
如何成为返回值的函数;keepalive
属性如何确保在多个组件之间切换时不缓存<modal>
组件;- 添加
pageType
作为自定义属性:
<script setup>
definePageMeta({
key: (route) => route.fullPath,
keepalive: {
exclude: ['modal']
},
pageType: 'Checkout'
})
</script>
定义中间件
下面的示例显示了如何使用definePageMeta
中的function
直接定义中间件,或将其设置为与位于middleware/
目录中的中间件文件名相匹配的“字符串”:
<script setup>
definePageMeta({
// 将中间件定义为函数
middleware: [
function (to, from) {
const auth = useState('auth')
if (!auth.value.authenticated) {
return navigateTo('/login')
}
return navigateTo('/checkout')
}
],
// ... 或一个字符串
middleware: 'auth'
// ... 或多个字符串
middleware: ['auth', 'another-named-middleware']
})
</script>
定义布局
您可以定义与布局文件名相匹配的布局(默认情况下位于 layouts/
目录中)。 您还可以通过将 layout
设置为 false
来禁用布局:
<script setup>
definePageMeta({
// 设置自定义布局
layout: 'admin'
// ...或禁用默认布局
layout: false
})
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论