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 相关文章推荐
Mootools 1.2教程 输入过滤第一部分(数字)
Sep 15 Javascript
javascript 嵌套的函数(作用域链)
Mar 15 Javascript
常用的JS验证和函数汇总
Dec 23 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
Sep 14 Javascript
Dropify.js图片宽高自适应的方法
Nov 27 Javascript
详解如何优雅地在React项目中使用Redux
Dec 28 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
Sep 14 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
微信小程序日历弹窗选择器代码实例
May 09 Javascript
浅谈Vue的响应式原理
May 30 Javascript
JS中的变量作用域(console版)
Jul 18 Javascript
JavaScript通如何过RGraph实现动态仪表盘
Oct 15 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常用Stream函数集介绍
2013/06/24 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
js验证表单第二部分
2006/11/25 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
Bootstrap表单布局
2016/07/19 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
[01:44]Ti10举办地公布
2019/08/25 DOTA
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python类装饰器实现方法详解
2018/12/21 Python
python常用排序算法的实现代码
2019/11/08 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
abstract class和interface有什么区别
2013/08/04 面试题
报关简历自我评价怎么写
2013/09/19 职场文书
教师自荐书
2013/10/08 职场文书
工作睡觉检讨书
2014/02/25 职场文书
《风筝》教学反思
2014/04/10 职场文书
个性婚礼策划方案
2014/05/17 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
实例详解Python的进程,线程和协程
2022/03/13 Python
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server