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替换URL中的参数值示例代码
Jan 27 Javascript
深入浅析JavaScript中的constructor
Apr 19 Javascript
JS添加或修改控件的样式(Class)实现方法
Oct 15 Javascript
学习使用Bootstrap页面排版样式
May 11 Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
Vue.js实现的购物车功能详解
Jan 27 Javascript
解决layer.open后laydate失效的问题
Sep 06 Javascript
谈一谈vue请求数据放在created好还是mounted里好
Jul 27 Javascript
Vue基本指令实例图文讲解
Feb 25 Vue.js
js Proxy的原理详解
May 25 Javascript
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
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实现向javascript传递数组的方法
2015/07/27 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
jQuery使用手册之一
2007/03/24 Javascript
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
Python 爬虫的原理
2020/07/30 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
软件测试面试题
2015/10/21 面试题
Ajax的工作原理
2015/12/04 面试题
学生爱国演讲稿
2014/01/14 职场文书
班级德育工作实施方案
2014/02/21 职场文书
护士个人自我鉴定
2014/03/24 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
使用Redis实现分布式锁的方法
2022/06/16 Redis