vue的全局变量和全局拦截请求器的示例代码


Posted in Javascript onSeptember 13, 2018

做的产品证书管理系统使用的是VueJs和ElementUI,现将遇到的一些知识点记录一下。

VUe全局变量的实现

全局变量专用模块Global.vue是以一个特定模块来组织管理全局变量,需要引用的地方导入该模块即可。使用方法如下:
将全局变量模块挂载到Vue.prototype里,在程序入口的main.js里加下面代码:

import Global from '../components/Global.vue'
Vue.prototype.global = Global

挂载后,在需要引用全局变量的模块时,不需要再导入全局变量模块,直接用this引用即可。 如:this.global.notifySuccess()

Vue的全局请求拦截器

在全局变量专用模块Global.vue中设置全局Vue请求拦截器,以在全局拦截器中添加请求超时的方法为例,若请求超时则取消此次请求,并提示用户。请求超时设置通过拦截器Vue.http.interceptors实现具体代码如下

Vue.http.interceptors.push((request,next) => {
  let timeout
  // 如果某个请求设置了_timeout,那么超过该时间,该终端会(abort)请求,并执行请求设置的钩子函数onTimeout方法,不会执行then方法。
  if (request._timeout) {
   timeout = setTimeout(() =>{
    if (request.onTimeout) {
     request.onTimeout(request)
     request.abort()
     }
    }, request._timeout)
  }
  next((response) => {
   clearTimeout(timeout)
   return response
   })
 })

当页面中用到vue-resource请求的地方设置如下即可:

this.$http.get('url',{
    params:{.......},
    ......
    _timeout:3000,
    onTimeout: (request) => {
      alert("请求超时");
    }
  }).then((response)=>{
});

Vue的全局守卫

全局路由守卫是指在路由跳转时对登录状态进行检查。可以使用router.beforeEach注册一个全局前置守卫:

const router = new VueRouter({…})
Router.beforeEach((to,from,next)=> { …})

当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫resolve完之前一直处于等待中。每个守卫方法接收三个参数:

  • to:Route即将要进入的目标,即路由对象;
  • from:Route当前导航正要离开的路由;
  • next:Function:一定要调用该方法来resolve这个钩子。执行效果依赖next方法的调用参数。

使用实例如下:

// 全局路由守卫,路由时检查用户是否登录,若无登录信息,指向登录界面
router.beforeEach((to, from, next) => {
  const nextRoute = ['AdminIndex','系统设置', '产品管理', '客户管理', '证书管理', '日志管理']
  if (nextRoute.indexOf(to.name)>= 0) {
    if (sessionStorage.getItem('username')){
      next()
    } else {
      window.location.replace('/login.html')
    }
  } else {
   next()
  }
})

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

Javascript 相关文章推荐
javascript new fun的执行过程
Aug 05 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
Dec 29 Javascript
js读取注册表的键值示例
Sep 25 Javascript
Jquery实现Div上下移动示例
Apr 23 Javascript
jquery实现可自动判断位置的弹出层效果代码
Oct 12 Javascript
详解javascript事件绑定使用方法
Oct 20 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 Javascript
vue2.0实现分页组件的实例代码
Jun 22 Javascript
vue服务端渲染缓存应用详解
Sep 12 Javascript
详解vue挂载到dom上会发生什么
Jan 20 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
Oct 24 Javascript
ant design charts 获取后端接口数据展示
May 25 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 #Javascript
vue interceptor 使用教程实例详解
Sep 13 #Javascript
Vue点击切换颜色的方法
Sep 13 #Javascript
node中的cookie的具体使用
Sep 13 #Javascript
vue动态改变背景图片demo分享
Sep 13 #Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
Sep 13 #Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
Sep 13 #Javascript
You might like
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
jQuery JSON的解析方式分享
2011/04/05 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
利用python获得时间的实例说明
2013/03/25 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
社区戒毒工作方案
2014/06/04 职场文书
大专生求职信
2014/06/29 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
见习期个人总结
2015/03/05 职场文书
研讨会通知
2015/04/27 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
导游词之安徽九华山
2019/09/18 职场文书