Vue路由对象属性 .meta $route.matched详解


Posted in Javascript onNovember 04, 2019

$route.fullPath

1 路由是:/path/:type真正路径是:/path/list

2 path匹配路径: /path/list

3 fullPath匹配路由: /path/:type

路由元信息 .meta

const router = new VueRouter({
 routes: [
  {
   path: '/foo',
   component: Foo,
   children: [
    {
     path: 'bar',
     component: Bar,
     // a meta field
     meta: { requiresAuth: true ,keepAlive:true}//1.权限 2.内存缓存,单页面切换
    }
   ]
  }
 ]
})

先理解什么是路由记录 : 路由记录就是 routes 配置数组中的对象副本 (还有在 children 数组)。

上方代码中的路由记录见下方:

//一级路由 
  {
   path: '/foo',
   component: Foo,
   children: [
    {
     path: 'bar',
     component: Bar,
     // a meta field
     meta: { requiresAuth: true ,keepAlive:true}//1.权限 2.内存缓存,单页面切换
    }
   ]
  }
 
 
//一级路由的子路由
 
  { path: 'bar',component: Bar,meta: { requiresAuth: true ,keepAlive:true } }
 
 
//两者都是  路由记录

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

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

3 一个路由匹配到的所有路由记录会暴露为 $route 对象 (还有在导航守卫中的路由对象) 的 $route.matched 数组。

4 检查路由记录中的 meta 字段 ,我们需要遍历 $route.matched

$route.matched

1 一个数组,包含当前路由的所有嵌套路径片段的路由记录

2 一个路由匹配到的所有路由记录会暴露为 $route 对象 (还有在导航守卫中的路由对象) 的 $route.matched 数组

路由元信息 .meta $route.matched 搭配路由守卫 进行验证

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路由对象属性 .meta $route.matched详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 弹出框只弹一次(二次修改之后的)
Nov 26 Javascript
jquery实现背景墙聚光灯效果示例分享
Mar 02 Javascript
js的Boolean对象初始值示例
Mar 04 Javascript
JavaScript中双叹号(!!)作用示例介绍
Apr 10 Javascript
js钢琴按钮波浪式图片排列效果代码分享
Aug 26 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
canvas实现图像放大镜
Feb 06 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
js数组去重的N种方法(小结)
Jun 07 Javascript
vue 根据数组中某一项的值进行排序的方法
Aug 30 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 Javascript
element-ui table组件如何使用render属性的实现
Nov 04 #Javascript
Vue 解决多级动态面包屑导航的问题
Nov 04 #Javascript
vue+elementUI动态生成面包屑导航教程
Nov 04 #Javascript
VUE+elementui面包屑实现动态路由详解
Nov 04 #Javascript
Vuex,iView UI面包屑导航使用扩展详解
Nov 04 #Javascript
vue双向绑定数据限制长度的方法
Nov 04 #Javascript
使用p5.js临摹动态图片
Nov 04 #Javascript
You might like
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
React Native 图片查看组件的方法
2018/03/01 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python调用windows api锁定计算机示例
2014/04/17 Python
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
深入理解Python变量与常量
2016/06/02 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
2013年高中生自我评价
2013/10/23 职场文书
企业宣传标语
2014/06/09 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
领导干部学习心得体会
2016/01/23 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
赞美教师的句子
2019/09/02 职场文书