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 相关文章推荐
Javascript拓展String方法小结
Jul 08 Javascript
Jquery绑定事件(bind和live的区别介绍)
Aug 23 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
Apr 08 Javascript
jQuery实现带滚动线条导航效果的方法
Jan 30 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
Apr 13 Javascript
jQuery基础知识点总结(必看)
May 31 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
JavaScript原型对象原理与应用分析
Dec 27 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 Javascript
JavaScript实现轮播图特效
Apr 10 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 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
PHP中其实也可以用方法链
2011/11/10 PHP
php生成动态验证码gif图片
2015/10/19 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
JavaScript学习历程和心得小结
2010/08/16 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
Angular实现form自动布局
2016/01/28 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python下载文件记录黑名单的实现代码
2017/10/24 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
python多线程和多进程关系详解
2020/12/14 Python
2019史上最全Database工程师题库
2015/12/06 面试题
北大研究生linux应用求职信
2013/10/29 职场文书
应聘自荐信
2013/12/14 职场文书
留学顾问岗位职责
2014/04/14 职场文书
设计师求职信
2014/07/01 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
Java 写一个简单的图书管理系统
2022/04/26 Java/Android