vue-router路由元信息详解

在路由列表中,每个路由都有一个 meta 元数据字段, 我们可以在这里设置一些自定义信息,供页面组件或者路由钩子函数中使用。下面通过样例进行演示。

1,meta 数据配置:

这里我们将每个页面的 title 都写在 meta 中来统一维护。

const router =  new Router({
  routes: [ //配置路由,使用数组形式
    {
      path: '/',   //链接路径
      name: 'index',  //路由名称
      component: index, //映射的组件
      meta: {
        title: '首页'
      }
    },
    {
      path: '/hello',
      name: 'hello',
      component: hello,
      meta: {
        title: '欢迎页'
      }
    }
  ]
})

2,在组件中获取meta数据

(1)我们可以通过 $route.meta.xxxx 获取路由元信息中的数据,下面我们将其直接显示在页面上。

<template>
  <div>
    <h1>{{$route.meta.title}}</h1>
  </div>
</template>

3,在路由钩子中获取 meta 数据:

(1)在上文中我演示了当跳转到某个页面时,如何在这个页面组件内改变网页标题。还有种更方便的做法,那便是在全局的钩子函数 beforeEach 中获取 meta 中的 title 数据,并设置为页面标题。

//全局路由改变前钩子
router.beforeEach((to, from, next) => {
  window.document.title = to.meta.title;
  next();
})

4,动态改变meta数据

meta数据并不是只读的,我们可以在代码中根据需求动态地改变它。

this.$route.meta.title = "还是首页";

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值