1. 程式人生 > 實用技巧 >react專案全域性loading實現

react專案全域性loading實現

最近在做一個後臺管理系統供內部人員使用,互動性沒有那麼強,所以對於每個頁面請求時要加loading,感覺要寫的比較麻煩,然後去百度了下能不能全域性實現loading:

需要loading的請求發出後,讓loading顯示,請求後無論成功還是失敗就讓loading關閉

大概程式碼如下:

const { request } = require("http")

//當前正在請求的數量
letrequestCount=0

//顯示loading
constshowLoading=()=>{
if(requestCount===0){//解決一個頁面多個介面請求需要loading
constdom=document.createElement('div')
dom.setAttribute(
'id','loading') document.body.appendChild(dom) ReactDOM.render(<Spintip="載入中"size="large"/>,dom) } requestCount++ } //隱藏loading consthideLoading=()=>{ requestCount-- if(requestCount===0){ document.body.removeChild(document.getElementById('loading')) } } // eg: if (options?.headers?.isLoading) { showLoading() } fetch().then(()
=> { if (options?.headers?.isLoading) { hideLoading() } // DO SOME }).catch(() => { if (options?.headers?.isLoading) { hideLoading() } }) // 外部呼叫 request(url, { headers: { isLoading: true } })