在Next.js中创建进度条可以通过使用第三方库来实现。以下是一种常见的方法:
npm install react-top-loading-bar
。import React, { useEffect, useState } from 'react';
import Router from 'next/router';
import LoadingBar from 'react-top-loading-bar';
const ProgressBar = () => {
const [progress, setProgress] = useState(0);
useEffect(() => {
const handleStart = () => setProgress(10);
const handleComplete = () => setProgress(100);
Router.events.on('routeChangeStart', handleStart);
Router.events.on('routeChangeComplete', handleComplete);
Router.events.on('routeChangeError', handleComplete);
return () => {
Router.events.off('routeChangeStart', handleStart);
Router.events.off('routeChangeComplete', handleComplete);
Router.events.off('routeChangeError', handleComplete);
};
}, []);
return (
<LoadingBar
color="#f11946"
progress={progress}
onLoaderFinished={() => setProgress(0)}
/>
);
};
import React from 'react';
import ProgressBar from './ProgressBar';
const MyPage = () => {
return (
<div>
<ProgressBar />
{/* 其他页面内容 */}
</div>
);
};
export default MyPage;
这样,当你在Next.js应用中进行页面切换时,进度条将会显示加载进度,并在加载完成后自动隐藏。
请注意,以上示例使用了react-top-loading-bar库来创建进度条。你可以根据自己的需求选择其他进度条库或自定义样式。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云