vue-router中关于meta的作用及说明

 更新时间:2023年05月17日 16:38:13   作者:青颜的天空  
这篇文章主要介绍了vue-router中关于meta的作用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue-router中meta的作用

meta的定义

简单来说就是路由元信息,也就是每个路由身上携带的信息。

meta的作用

vue-router路由元信息说白了就是通过meta对象中的一些属性来判断当前路由是否需要进一步处理,如果需要处理,按照自己想要的效果进行处理即可

定义路由的时候可以配置 meta 字段:

const router = new VueRouter({
  routes: [
    {
      path: '/foo',
      component: Foo,
      children: [
        {
          path: 'bar',
          component: Bar,
          // a meta field
          meta: { requiresAuth: true }
        }
      ]
    }
  ]
})

那么如何访问这个 meta 字段呢?

首先,我们称呼 routes 配置中的每个路由对象为 路由记录。路由记录可以是嵌套的,因此,当一个路由匹配成功后,他可能匹配多个路由记录

例如,根据上面的路由配置,/foo/bar 这个 URL 将会匹配父路由记录以及子路由记录。

一个路由匹配到的所有路由记录会暴露为 $route 对象 (还有在导航守卫中的路由对象) 的 $route.matched 数组。因此,我们需要遍历 $route.matched 来检查路由记录中的 meta 字段。

下面例子展示在全局导航守卫中检查元字段:

router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.requiresAuth)) {
    // this route requires auth, check if logged in
    // if not, redirect to login page.
    if (!auth.loggedIn()) {
      next({
        path: '/login',
        query: { redirect: to.fullPath }
      })
    } else {
      next()
    }
  } else {
    next() // 确保一定要调用 next()
  }
})

vue-router中元信息meta的妙用

{
    path:"/test",
    name:"test",
    component:()=>import("@/components/test"),
    meta:{
        title:"测试页面", //配置title
        keepAlive: true //是否缓存
    }
}

配置此路由的标题title

//main.js中的代码
router.beforeEach((to,from,next)=>{
    if(to.meta.title){
        document.title=to.meta.title
    }
    next()
})

配置组件是否需要缓存

<!-- app.vue中的代码 -->
<!-- 需要被缓存的路由入口 -->
<keep-alive>  
    <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<!-- 不需要被缓存的路由入口 -->
<router-view v-if="!$route.meta.keepAlive"></router-view>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue中keep-alive的两种应用方式

    Vue中keep-alive的两种应用方式

    这篇文章主要介绍了Vue中keep-alive的两种应用方式,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • VScode格式化ESlint方法(最全最好用方法)

    VScode格式化ESlint方法(最全最好用方法)

    这篇文章主要介绍了VScode格式化ESlint方法(最全最好用方法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Vue项目打包并发布的完整步骤记录

    Vue项目打包并发布的完整步骤记录

    在一般情况下,vue项目代码部署发布只需将代码打包后直接上传到服务器即可,下面这篇文章主要给大家介绍了关于Vue项目打包并发布的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Vue+Echarts实现简单折线图

    Vue+Echarts实现简单折线图

    这篇文章主要为大家详细介绍了Vue+Echarts实现简单折线图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue-resource安装过程及使用方法解析

    Vue-resource安装过程及使用方法解析

    这篇文章主要介绍了Vue-resource安装过程及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • vue项目本地开发使用Nginx配置代理后端接口问题

    vue项目本地开发使用Nginx配置代理后端接口问题

    这篇文章主要介绍了vue项目本地开发使用Nginx配置代理后端接口问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Vue3 计算属性的用法详解

    Vue3 计算属性的用法详解

    学过 vue2 的宝子们应该都清楚,计算属性这个东西在项目开发过程中使用的还是比较频繁的,使用频率相对来说比较高。本文就来为大家介绍一下Vue3中计算属性的用法,需要的可以参考一下
    2022-07-07
  • vue设置代理不起作用问题及解决

    vue设置代理不起作用问题及解决

    这篇文章主要介绍了vue设置代理不起作用问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Vue项目保存代码之后页面自动更新问题

    Vue项目保存代码之后页面自动更新问题

    这篇文章主要介绍了Vue项目保存代码之后页面自动更新问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue+element实现页面顶部tag思路详解

    vue+element实现页面顶部tag思路详解

    这篇文章主要介绍了vue+element实现页面顶部tag效果,页面显示由数组循环得出,数组可存储在store里,tags数组里面已经有值,由于默认是白色,所以页面上看不出,接下来就是给选中的标签高亮,需要的朋友可以参考下
    2021-12-12

最新评论