在前端單頁面應用中,子頁面的代碼都是當用戶訪問到的時候,才會異步去加載子頁面的代碼。
如果子頁面代碼較大,那么會給用戶一段時間的卡頓感,很影響使用體驗。
所以,我們想在加載子頁面代碼時,顯示 loading 組件,從而優化體驗。
在 Umi 中,可以通過簡單的配置,即可實現。
import React, { useEffect } from 'react'
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
function PageLoading() {
useEffect(() => {
const progress = NProgress.start();
return () => {
progress.done();
}
}, [])
return<></>
}
export default PageLoading
2.配置config
import { defineConfig } from 'umi';
export default defineConfig({
dynamicImport: {
loading:'@/components/PageLoading'
},
nodeModulesTransform: {
type: 'none',
},
antd: false,
mock: false,
hash: true,
proxy: {
'/ssp-api/': {
target: '====',
changeOrigin: true,
ws: false,
},
},
});
3.配置完畢,等 umi 熱加載完成后,回到頁面,切換路由,就可以看到 loading 效果了
