vue 使用antd design vue 配置全局的axios的loading

vue 使用antd design vue 配置全局的axios的loading

import Vue from 'vue'
import axios from './assets/js/axios'
Vue.prototype.$ajax = axios;

在axios.js文件中设置一个axios拦截器

import axios from 'axios'
import store from "../../store"
axios.interceptors.request.use(function (config) {
    store.state.loadding = true; //在请求发出之前进行一些操作
    return config
}, function (error) {
    return Promise.reject(error)
});
axios.interceptors.response.use(function (response) {
    store.state.loadding = false;//在这里对返回的数据进行处理
    return response.data
}, function (error) {
    return Promise.reject(error)
})
export default axios

3.就是修改store.js的代码

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
  //状态
  state: {
    loadding: false
  },
  //状态修改方法
  // 使用store.commit()来调用
  mutations: {
    showloadding(state, load) {
      state.loadding = load
    }
  },
  // 可以用store.dispatch来调用
  actions: {
    setloadding(context,load){
      context.commit("showloadding",load);
    }
  },
  getters: {
    isloading:(state)=>{
      return state.loadding
    }
  }
})
// 导出
export default store

4.在 app.vue中用加载中的组件把所有组件都包裹起来

<a-spin :spinning="this.$store.state.loadding" tip="加载中...">
        <router-view /">
      </a-spin>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值