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中的new使用
Mar 20 Javascript
javascript读取Xml文件做一个二级联动菜单示例
Mar 17 Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
Apr 29 Javascript
ionic隐藏tabs的方法
Aug 29 Javascript
JQuery和HTML5 Canvas实现弹幕效果
Jan 04 Javascript
bootstrap日期插件daterangepicker使用详解
Oct 19 Javascript
Validform验证时可以为空否则按照指定格式验证
Oct 20 Javascript
element ui 表格动态列显示空白bug 修复方法
Sep 04 Javascript
vue实现折线图 可按时间查询
Aug 21 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 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
我的论坛源代码(三)
2006/10/09 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
基于python生成器封装的协程类
2019/03/20 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
金士达面试非笔试
2012/03/14 面试题
财务人员个人求职信范文
2013/12/04 职场文书
化工实习心得体会
2014/09/09 职场文书
合作经营协议书范本
2014/09/16 职场文书
刑事代理授权委托书
2014/09/17 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
redis实现共同好友的思路详解
2021/05/26 Redis