学数学的程序猿
数学 / 前端开发 / 算法About me
使用NProgress给页面顶部加上进度条
前端
2023-02-15 15:45:46

当页面加载时,在页面顶部加上进度条,可以感知到页面正在加载,而不是类似于卡死的现象。

如github上这种

安装

npm install nprogress
npm install @types/nprogress --save-dev

使用

我这个是next.js项目,在 _app.tsx里使用即可。
监听路由的开始和结束事件,开始时启动进度条,结束或发生错误时结束进度条。

//需要import相关的库和样式
import NProgress from "nprogress";
import "nprogress/nprogress.css"

export default function App({ Component, pageProps }: AppProps) {

  useEffect(() => {

    Router.events.on('routeChangeStart', ()=>{
      NProgress.start();
    })
    Router.events.on('routeChangeComplete', ()=>{
      NProgress.done();
    })
    Router.events.on('routeChangeError', ()=>{
      NProgress.done();
    })

  }, [Router])

  return <>
    <Component {...pageProps} />
  </>
}