axios全局loading與實例loading


axios全局loading與實例loading

參考文章:https://blog.csdn.net/qq_40963664/article/details/94554176

何為全局與實例?

文檔上的全局指的是在axios中進行配置攔截器,即全局攔截器,並在攔截器中對config進行修改,添加loading效果組件等。

但是

此處要介紹的是,如何在實例中設置一個loading效果,並在其他地方控制效果。即在某些頁面需要顯示其他不同的loading效果。

config

通過config可以將控制變量傳到攔截器中(或者說攔截器可以攔截到config內容並解析)。

例如,我們在login用的是uni-app的全局loading效果,而在其他功能頁面用的是專用的頁面loading。

這時就需要通過傳入一個控制變量來關閉掉全局配置的loading效果。

// 實例化axios
const service = axios.create({
  baseURL: 'http://***.***.***.***:****', // 基礎請求地址
  timeout: 10000 // request timeout
})

// 封裝post請求
service.post(url, params, {
    headers,
    showLoading		// 此處即為loading效果的顯示控制變量
})

在攔截器中判斷

service.interceptors.request.use(
  // eslint-disable-next-line arrow-body-style
  (config) => {
    // 請求發出前做的事
			// 請求是否需要loading效果
		if (config.showLoading) {
			showFullScreenLoading()
		}
      ...
  }
)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM