¿Cómo puedo crear una página de carga entre transiciones en la misma aplicación web usando Next JS?
En este momento, en el entorno de desarrollo, las páginas tienen una transición normal, lo que significa que el CSS se aplica correctamente en cada página. El problema comienza al construir la aplicación al entorno de producción, por ejemplo, cuando hago clic en un botón que tiene un componente de enlace a otra página, aparece así durante 1 o 2 segundos:
Después de 1 o 2 segundos se procesa en consecuencia: 
Perdón por la pregunta vaga, pero no sé por dónde empezar a buscar para resolver este problema y supongo que se solucionará con dos posibles soluciones:
Debe importar el enlace del siguiente js para resolver el problema de renderizado, si desea hacer una pantalla de carga, puede usar ganchos, por ejemplo:
import {useState, useEffect} from 'react'; import Router from 'next/router'; function MyApp() { const [loading, setLoading] = useState(false); useEffect(() => { Router.events.on('routeChangeStart', () => setLoading(true)); Router.events.on('routeChangeComplete', () => setLoading(false)); Router.events.on('routeChangeError', () => setLoading(false)); return () => { Router.events.off('routeChangeStart', () => setLoading(true)); Router.events.off('routeChangeComplete', () => setLoading(false)); Router.events.off('routeChangeError', () => setLoading(false)); }; }, [Router.events]); return ( <> { (loading) ? <p>Loading...</p> : <p>Home</p> } </> ); }Al abordar este problema, hay dos maneras de pensar en él.
Tanto para el n. ° 1 como para el n .
Estos dos enfoques se basan en las ideas anteriores.