Vue实现loading加载动画

2023-02-11 10:07:42

Vue实现loading加载动画

1.在main.js里引入axios

import axios from "@/http/index.js"

2. 在vuex中设置状态

state: {
	   		 isLoading: false
	  	},

3.配置拦截器

import axios from 'axios'
import store from '@/store'//vuex的路径
var instance =axios.create({
    baseURL:'',
    timeout:5000
})
instance.interceptors.request.use((config)=>{
    //在这里面写请求之前做的事情
        // const token = sessionStorage.getItem('ji')
        // if (token) { // 判断是否存在token,如果存在的话,则每个http header都加上token
        //     config.headers.authorization = token  //请求头加上token
        // }
        store.state.isLoading=true//loading加载动画
        return config
},error=>{
    return Promise.reject(error)
})


instance.interceptors.response.use(response => {
    if(response.status === 200) {
      store.state.isLoading=false//loading加载动画
      return Promise.resolve(response)
    }
  }, error => {
    return Promise.reject(error)
  })
export default instance

4.在app.vue中引入

<!-- template中 -->
<Loading v-if="isLoading" />
import { mapState } from "vuex";
export default {
	computed: {//加载数据过程loading
	    ...mapState(["isLoading"])
	},
}
  • 作者:先知预判
  • 原文链接:https://blog.csdn.net/weixin_50539818/article/details/108951091
    更新时间:2023-02-11 10:07:42