Vue路由对象属性 .meta $route.matched详解
2019-11-04 18:06
3235 查看
$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详解就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- Vue-router的使用和出现空白页,路由对象属性详解
- 详解Vue中watch对象内属性的方法
- 详解Vue改变数组中对象的属性不重新渲染View的解决方案
- vue路由信息对象属性分析-hash
- javascript动态创建对象的属性详解
- 详解对象属性复制的三种方法
- route命令参数详解,linux添加删除路由命令
- vue 改变对象属性。视图不刷新问题
- vue中给对象添加属性
- Vue之computed(计算属性)详解get()、set()
- Meta http-equiv属性详解(转)
- vuex--学习笔记(二)在组件中如何获取vuex的state对象中的属性
- 详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
- VueJs路由跳转——vue-router的使用详解
- 详解Vue路由开启keep-alive时的注意点
- Meta http-equiv属性详解(转)
- vue-route 嵌套路由
- CCNP路由-22 BGP community属性及其部署详解
- iOS对象属性详解
- Vue2.0 解决watch对象属性变化监听不到问题