详解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 三种不同位置代码的写法
Oct 25 Javascript
JS上传前预览图片实例
Mar 25 Javascript
js 中将多个逗号替换为一个逗号的代码
Jun 07 Javascript
Angularjs 设置全局变量的方法总结
Oct 20 Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 Javascript
实例分析js事件循环机制
Dec 13 Javascript
微信小程序wepy框架笔记小结
Aug 08 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 Javascript
JS如何定义用字符串拼接的变量
Jul 11 Javascript
js实现盒子拖拽动画效果
Aug 09 Javascript
Vue中正确使用Element-UI组件的方法实例
Oct 13 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删除数组中的特定元素的代码
2012/06/28 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
express.js中间件说明详解
2019/03/19 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
浅析Python的Django框架中的Memcached
2015/07/23 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
员工考核管理制度
2014/02/02 职场文书
成龙洗发水广告词
2014/03/14 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
运动会口号大全
2014/06/07 职场文书
英语教研活动总结
2014/07/02 职场文书
2014年校长工作总结
2014/12/11 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
vue实现简单数据双向绑定
2021/04/28 Vue.js
在Docker容器中部署SQL Server
2022/04/11 Servers
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电