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的IE和Firefox(火狐)兼容性的问题总结及常用例子
May 21 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
Jan 02 Javascript
javascript对中文按照拼音排序代码
Aug 20 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
Dec 30 Javascript
js获取新浪天气接口的实现代码
Jun 06 Javascript
详细谈谈javascript的对象
Jul 31 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
Sep 09 Javascript
BootStrap实现鼠标悬停下拉列表功能
Feb 17 Javascript
JS字符串按逗号和回车分隔的方法
Apr 25 Javascript
Vue+axios 实现http拦截及路由拦截实例
Apr 25 Javascript
详解利用jsx写vue组件的方法示例
Jul 17 Javascript
Angular4 反向代理Details实践
May 30 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 mkdir()定义和用法
2009/01/14 PHP
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
通过修改referer下载文件的方法
2008/05/11 Javascript
jquery实现多级下拉菜单的实例代码
2013/10/02 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
python中的for循环
2018/09/28 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
本科生详细的自我评价
2013/09/19 职场文书
销售行业个人求职自荐信
2013/09/25 职场文书
焊接专业毕业生求职信
2013/10/01 职场文书
材料化学应届生求职信
2013/10/09 职场文书
项目经理的岗位职责
2013/11/23 职场文书
酒店仓管员岗位职责
2014/04/28 职场文书
数学系毕业生求职信
2014/05/29 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
2014年协会工作总结
2014/11/22 职场文书
离婚协议书范文2015
2015/01/26 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL