在Vue路由中meta是用于存储额外的配置信息的对象。
作用:
1、meta对象可以用来存储页面标题
2、权限验证
3、缓存控制设置等信息
4、面包屑导航
5、动画效果
6、国际化支持
存储标题:
export default [
    {
        path:'/',
        name:"Index",
        component: { render: () => h(resolveComponent("router-view")) },
        redirect:'/',
        meta:{title:"主页"},
        requiresAuth: true
    }
]页面标题:
router.beforeEach((to,from,next)=>{
    console.log('router.beforeEach---')
    console.log('to=',to)
    console.log('from=',from)
    //路由发生变化修改页面title
    //document.title = to.meta.title || 'Default Title';
    if(to.meta.title){
        document.title = to.meta.title;
    }
    next()
})权限验证:
路由
export default [
    {
        path:'/',
        name:"Index",
        component: { render: () => h(resolveComponent("router-view")) },
        redirect:'/',
        meta:{
        	 title:"主页",
             requiresAuth: true
        }
    }
]路由守卫
router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isUserAuthenticated()) {
    next('/login');
  } else {
    next();
  }
});验证token
// 实际应用中应该替换为真实的权限验证逻辑
function isUserAuthenticated() {
  return Boolean(localStorage.getItem('userToken'));
}- 通过meta对象中的requiresAuth字段,可以在导航守卫中判断用户是否有权限访问某个页面,官网页面中有些需要登录才能看到的页面+需要宣传无需登录的页面。
缓存控制:
keepAlive
export default [
    {
        path:'/',
        name:"Index",
        component: { render: () => h(resolveComponent("router-view")) },
        redirect:'/',
        meta:{
        	 title:"主页",
             requiresAuth: true,
             keepAlive: true
        }
    }
]- 可以通过meta对象中的keepAlive字段控制组件是否需要被缓存
面包屑导航:
breadcrumb
export default [
    {
        path:'/',
        name:"Index",
        component: { render: () => h(resolveComponent("router-view")) },
        redirect:'/',
        meta:{
        	 title:"主页",
             requiresAuth: true,
             keepAlive: true,
             breadcrumb: 'Home'
        }
    }
]动画效果:
export default [
    {
        path:'/',
        name:"Index",
        component: { render: () => h(resolveComponent("router-view")) },
        redirect:'/',
        meta:{
        	 title:"主页",
             requiresAuth: true,
             keepAlive: true,
             breadcrumb: 'Home',
             transition: 'fade'
        }
    }
]- 通过meta对象中的transition字段可以控制页面切换时的动画效果。
国际化支持:
export default [
    {
        path:'/',
        name:"Index",
        component: { render: () => h(resolveComponent("router-view")) },
        redirect:'/',
        meta:{
        	 title:"主页",
             requiresAuth: true,
             keepAlive: true,
             breadcrumb: 'Home',
             transition: 'fade',
             i18n: 'homePage'
        }
    }
]router.beforeEach((to, from, next) => {
  const titleKey = to.meta.i18n;
  document.title = i18n.t(titleKey);
  next();
});









