关于vue中 Axios的使用心得

一直想整理一份关于 Axios的文章,今天闲来无事就做一下吧。

首先在这里给大家放一下Axios的中文说明 :https://www.kancloud.cn/yunye/axios/234845

npm下载方式

//这里推荐还没有使用cnpm的小伙伴使用一下cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
//下载axios包
cnpm install axios

cdn的使用方式

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

关于axios的使用说明大家可以看上面的网站的中文说明,本文主要对axios开发过程中在vue项目中的配置的总结

1:在main.js中全局配置axios,把axios挂载到vue的原型上,这样我们就可以在vue创建的对象中直接只用this.axios 使用axios
import axios from 'axios'
Vue.prototype.axios = axios

2:在main.js同级创建setAxios.js文件,在这个文件里配置axios,以及项目的接口,并导出(推荐这样使用)我在这里放一下我的配置

import store from './store'
import router from './router'
import axios from 'axios'
// http 全局拦截
// token放在我们请求的header上面打回去给后端
//这里是配置baseURL
axios.defaults.baseURL = "http://192.168.1.228:2125";
// axios.defaults.baseURL = "http://192.168.1.239:2125";
//这里是全局拦截 这里把localstorage里面的token值放在header中带回去,这样就不用每一次都传token值,会自动帮我们传
axios.interceptors.request.use(
    config => {
        if (localStorage.getItem('token')) {
            config.headers.token = localStorage.getItem('token')
        }
        return config
    }
)

//这里是对res的返回做全局判断
axios.interceptors.response.use(
    res => {
        // if (res.status == 200) {
            const data = res.data
            if (data.code == -1) {
                // 登陆过期,请从新登录
                alert('登陆过期')
                localStorage.removeItem('token')
                localStorage.setItem('isLogin',false)
                // 跳转到login页面
                router.replace({ path: '/login' })
            }else if(data.state == -1){
                alert('该用户已被禁用!')
                localStorage.removeItem('token')
                localStorage.removeItem('userName')
                localStorage.setItem('isLogin',false)
                router.replace({ path: '/login' })
            }
            return data
        }
    // }
)
// 登录
//这里是 写接口的地方
export const login = params => {
    return axios.post('/api/login', params);
}

需要掉用接口的时候只需在需要的文件里面

import { login } from "@/setAxios.js";

发请求实例

login(this.loginForm).then(res => {
        if (res.state == 1) {
          localStorage.setItem('token',res.token)
          localStorage.setItem('userName',res.Name)
          localStorage.setItem('isLogin',true)
          this.$message({
            showClose: true,
            message: "恭喜你,登录成功",
            duration: 1000,
            type: "success",
            onClose: function() {
              _this.$router.replace({
                path: "/index"
              });
            }
          });
        }else if(res.state == 0){
          this.$message.error('用户名或者密码错误');
          this.loading = false
        }
      })

到此我对axios的相关使用就示范完了,希望对大家有所帮助,也同时希望大家能给我提出更多好的修改

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值