vue 封装加载动画

全屏加载
这里使用 elementui 和 axios的拦截器
得到请求 ,就把 loading 给close 掉

什么也别说了,看下面的代码!!

import axios from 'axios'
import { Loading } from 'element-ui';
import {MessageBox} from "element-ui";

//https://blog.csdn.net/weixin_41753291/article/details/80619523
let loadingInstance = null;
axios.interceptors.request.use(req => {
  loadingInstance = Loading.service({fullscreen: true})
  return req
}, error => {
  return Promise.reject(error)
})

//配置 response 拦截器
axios.interceptors.response.use(resp => {
   loadingInstance.close();
    console.log(resp.data)
    return resp.data;
  }, error => {
   loadingInstance.close()
    MessageBox.alert("网络异常!")
    return new Promise.reject(error)
  }
)


axios.defaults.baseURL = 'http://localhost/';
export const request = {
  get(url, params) {
    // MessageBox.alert("网络或系统错误!", "提示");
    console.log("url --->" + url)

    return axios.get(url, {params})
  },
  post(url, json) {
    return axios.post(url, json)
  }
}
// 复制代码

下面的helloVue组件的设置

<template>
    <div>hello world</div>
</template>

<script>

// import axios from 'axios'
import {request} from 'network/request.js'

export default {

  name: 'HelloWorld',
  mounted () {


    console.log('初始化.....'+this.$route.query.a)
    let url = 'http://localhost:80/login'
    request.post(url,{user:123,password:123}).then(
      res => {
        console.log('发送了请求')
        console.log(res)
      }
    ).catch(err => {
      // this.$message.error("没有token")
      console.log('err' + err)
    })
  }
}
</script>

<style scoped>

</style>

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值