路由元信息
有时,你可能希望将任意信息附加到路由上,如过渡名称、谁可以访问路由等。这些事情可以通过接收属性对象的
meta
属性来实现,并且它可以在路由地址和导航守卫上都被访问到。定义路由的时候你可以这样配置
meta
字段:
那么如何访问这个
meta
字段呢?
首先,我们称呼
routes
配置中的每个路由对象为
路由记录
。路由记录可以是嵌套的,因此,当一个路由匹配成功后,它可能匹配多个路由记录。
例如,根据上面的路由配置,
/posts/new
这个 URL 将会匹配父路由记录 (
path: '/posts'
) 以及子路由记录 (
path: 'new'
)。
一个路由匹配到的所有路由记录会暴露为
route
对象(还有在导航守卫中的路由对象)的
route.matched
数组。我们需要遍历这个数组来检查路由记录中的
meta
字段,但是 Vue Router 还为你提供了一个
route.meta
方法,它是一个非递归合并
所有
meta
字段(从父字段到子字段)的方法。这意味着你可以简单地写
TypeScript
也可以继承来自
vue-router
中的
RouteMeta
来为 meta 字段添加类型: