$route.matched的作用以及面包屑导航的制作
Vue路由知识点
·
$route.matched
的作用
官方解释: 与给定路由地址匹配的标准化的路由记录数组。
个人觉得就是当有多级路由的时候,记录每一级路由,并生成数组。如:
const router = new VueRouter({
routes: [
// 下面的对象就是路由记录
{
path: '/foo',
component: Foo,
children: [
// 这也是个路由记录
{ path: 'bar', component: Bar }
]
}
]
})
此时$route.matched
对应的数组中有两项数据分别是/foo
路径下的路由和/foo/bar
路径下所对应的路由。有多少级路由就会对应生成多少级路由下的路由。
面包屑导航制作
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
<span>{{ item.meta.title }}</span>
<a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
<script>
export default {
data () {
return {
levelList: null,
}
},
created () {
this.getBreadcrumb()
},
methods: {
getBreadcrumb() {
// only show routes with meta.title
let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
},
}
}
</script>
实现效果:
更多推荐
已为社区贡献1条内容
所有评论(0)