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加密解密7种方法总结分析
Oct 07 Javascript
基于jquery的loading效果实现代码
Nov 05 Javascript
iframe 上下滚动条如何默认在下方实现原理
Dec 10 Javascript
对table和ul实现js分页示例分享
Feb 24 Javascript
更靠谱的H5横竖屏检测方法(js代码)
Sep 13 Javascript
jstl中判断list中是否包含某个值的简单方法
Oct 14 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
Dec 20 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
Oct 26 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
Dec 11 Javascript
Vue路由模块化配置的完整步骤
Aug 14 Javascript
ES6中Symbol、Set和Map用法详解
Aug 20 Javascript
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
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
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
程序员编程十条戒律
2009/07/09 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
利用php输出不同的心形图案
2016/04/22 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
angular 内存溢出的问题解决
2018/07/12 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python skimage 连通性区域检测方法
2018/06/21 Python
python3爬虫怎样构建请求header
2018/12/23 Python
python画图的函数用法以及技巧
2019/06/28 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
全球性的在线商店:Vogca
2019/05/10 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
法警的竞聘演讲稿
2014/01/02 职场文书
小学生寒假家长评语
2014/04/16 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
中学教师读书笔记
2015/07/01 职场文书