vue 项目axios全局配置与路由模式配置

axios全局配置

vue项目的一般都会用axios作为http请求,如果是后台管理之类的项目往往会涉及权限或者全局异常处理配置,下面是配置axios全局拦截器的示例代码(main.js文件)

//main.js
import Vue from 'vue';
import iView from 'iview';
import 'iview/dist/styles/iview.css';
import Util from './libs/util';
import axios from 'axios';
import cacheUtil from './libs/cache_util';
import cfg from './libs/server_config.js';

axios.defaults.baseURL = cfg.baseUrl;
axios.defaults.method = 'post';

axios.interceptors.request.use(
  config => {
    let u_token = cacheUtil.getCache('u_token');
    if (u_token != null) {
      config.headers['Authorization'] = u_token;
    }
    return config;
  }, function (error) {
    return Promise.reject(error);
  }
);

axios.interceptors.response.use(function (response) {
  // 请求未授权
  if (response.data.ret_code === 401) {
    return Promise.reject(response);
  } else if (response.data.ret_code !== 200) {
    iView.Notice.error({title: '请求出错! 错误码: ' + response.data.ret_code, desc: response.data.ret_msg});
    if (response.data.ret_msg === "session 失效,请重新登陆!") {
      // 退出登录
      router.push({
        name: 'login'
      });
    }
    return Promise.reject(response);
  }
  return response.data.data;
}, function (error) {
  console.log(error);
  iView.Notice.error({title: '请求出错! ', desc: '网络连接失败!'});
  return Promise.reject(error);
});

Vue.prototype.$axios = axios;

//配置路由
export default new Router({
  base: 'page',
  mode: 'history', //这里配置路由的模式
  routes: [
    {
      path: '/login',
      name: 'login',
      component: login
    },
]
});

vue路由配置

1 hash模式

              路由默认模式是hash模式,hash模式的关键原理是onhashchange事件,无需向后端发起请求,浏览器可以监听Hash值的变化,并按规则加载相应的代码。Hash值的变化会被浏览器记录,实现页面的前进和后退功能,但url地址会有#号符,可能能些人会感觉不美观。
 

2 history模式

           history模式的URL中没有#符号,采用传统的路由分发模式,即用户输入URL时,服务器接收请求并解析URL,然后进行相应的逻辑处理,也就说所有的页面切换都经过了后台,后台服务器资源相对比hash相对消耗,不过没有太大的访问量也体现不出那点差距。
 

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Vue.js 3(简称 Vue3)是前端开发框架 Vue.js 的最新版本,它构建在 TypeScript 之上,提供了更好的性能、更简洁的 API 和更好的可维护性。Vue3采用了组件化的开发模式,使得代码更加模块化和易于复用。核心概念包括模板、指令、响应式系统和组件选项等。以下是Vue3的一些主要特点: 1. **TypeScript 支持**:Vue3原生支持TypeScript,这使得类型检查和开发者体验得到了提升。 2. **Composition API**:Vue3引入了新的API,如`setup()`函数,取代了options API,提供更简洁的声明式编程方式。 3. **Ref 和 Reactive API**:Reactive是Vue的核心特性,`ref`用于创建响应式的数据绑定,`reactive`用于创建完整的响应式对象。 4. **SSR(服务器渲染)和PWA(渐进式Web应用)支持**:Vue3对这两种现代开发趋势有良好的支持。 Axios 是一个基于 Promise 的 HTTP 库,用于浏览器和 Node.js 中处理 HTTP 请求。它设计轻巧,易于使用,并且能够在浏览器和 Node.js 环境下无缝工作。以下是 Axios 的一些关键特性: 1. **Promise 基础**:Axios返回的是一个Promise,使得异步请求的处理更为直观。 2. **拦截器**:提供请求前和请求后的拦截器,用于设置全局配置、请求头、错误处理等。 3. **转换器**:支持转换请求和响应数据,比如默认将JSON转换为JavaScript对象。 4. **Cancelable 请求**:可以取消正在执行的请求,方便处理用户操作或服务超时。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qyhua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值