详解vue-router 路由元信息


Posted in Javascript onSeptember 13, 2017

一、背景

之前写前端都是后端返回界面,跳转神马的完全不用自己操心,但是这次用 vue 写的前端,第一次前后端分离,后端只给前端提供数据接口,一开始还想着是后端控制界面的渲染神马的,但是后面一想,路由神马的都是前端控制的,后端的手伸不过来啊,于是乎就一直在逛 vue-router 的官网,想着应该会有相关的东西,然后发现了路由元信息,起初怎么也没看懂是什么意思,后面慢慢琢磨明白了,记录一下

二、代码分析

官网路由元信息

(1)路由定义

const router = new VueRouter({
 routes: [
  {
   path: '/foo',
   component: Foo,
   meta: { requiresAuth: true }// a meta field
  }
 ]
})

 这里的 meta 字段就是路由元信息字段,requiresAuth 是自己起的字段名称,用来标记这个路由信息是否需要检测,true 表示要检测,false 表示不需要检测(这个名称随便起,比如我自己的就起的 requiresId,或者你懒得想,就直接 a ,b 这么起,当然,还是比较建议起个有意义的名称)

(2)js 代码

new Vue({
 el: '#app',
 router,
 template: '<App/>',
 components: { App },
 render: h => h(App),
 created () {
  this.redrct()
 },
 methods: {
  redrct () {
   router.beforeEach((to, from, next) => {
    if (to.matched.some(record => record.meta.requiresId)) { //这里meta字段的名称要与上面route里面保持一致
     // this route requires Id, check if logged in
     // if not, redirect to login page.
     if (!this.loggedIn()) { // 自己的判断条件
      next({
       path: '/', // 重定向后的路由
       query: { redirect: to.fullPath } // 登录成功之后可以根据query中的内容跳转回原来的路由(页面)
      })
     } else {
      next()
     }
    } else {
     next() // 确保一定要调用 next()
    }
   })
  },
  loggedIn () {
   var id = sessionStorage.getItem('userId')
   if (id === null) { // 未登录
    return false
   }
   return true // 别忘了这句啊,之前忘写了,调了好半天呢
  }
 }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript定义类或函数的几种方式小结
Jan 09 Javascript
javascript中使用new与不使用实例化对象的区别
Jun 22 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
Nov 09 Javascript
js仿小米手机上下滑动效果
Feb 05 Javascript
JQuery中Ajax的操作完整例子
Mar 07 Javascript
angularJs中$http获取后台数据的实例讲解
Aug 08 Javascript
详解vue在项目中使用百度地图
Mar 26 Javascript
JS中的模糊查询功能
Dec 08 Javascript
JS删除对象中某一属性案例详解
Sep 08 Javascript
vue 封装面包屑组件教程
Nov 16 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 #Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 #Javascript
Vue-Router进阶之滚动行为详解
Sep 13 #Javascript
Vue 滚动行为的具体使用方法
Sep 13 #Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 #Javascript
VUE实现一个分页组件的示例
Sep 13 #Javascript
jquery 键盘事件的使用方法详解
Sep 13 #jQuery
You might like
PHP脚本的10个技巧(4)
2006/10/09 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
php实现将Session写入数据库
2015/07/26 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
python通过线程实现定时器timer的方法
2015/03/16 Python
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
python if not in 多条件判断代码
2016/09/21 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
html5 canvas 使用示例
2010/10/22 HTML / CSS
新东网科技Java笔试题
2012/07/13 面试题
介绍一下linux文件系统分配策略
2013/02/25 面试题
大学生实习思想汇报
2014/01/12 职场文书
党员承诺书内容
2014/03/26 职场文书
欢迎新生标语
2014/10/06 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
2014年度培训工作总结
2014/11/27 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
运动会跳远广播稿
2015/08/19 职场文书
总经理聘用协议书
2015/09/21 职场文书
音乐研修感悟
2015/11/18 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
Python语言内置数据类型
2022/02/24 Python