在 next.js 13.4 的 app router 中,可通过在 `app/` 根目录下创建 `loading.js`(或 `loading.tsx`)文件,自动为所有路由切换注入中心化加载 ui,无需手动监听导航事件。
Next.js App Router 内置了声明式的加载状态机制——只需在 app/ 目录下创建 loading.js(推荐使用 .tsx 后缀以支持 JSX),该组件就会作为所有嵌套路由切换时的过渡 UI 自动生效。它会在数据获取(如 fetch、Server Components 渲染)或客户端导航过程中被渲染,并在目标页面准备就绪后平滑替换。
✅ 正确做法示例:
在 app/loading.tsx 中编写:
export default function Loading() {
return (
Loading...
);
}? 关键说明:
CSS 动画与响应式设计,但不应包含 useEffect、useState 等客户端逻辑(因其可能在服务端渲染阶段执行失败); ⚠️ 注意事项:
通过这一机制,你可零配置实现全站统一、性能友好、符合 React Server Components 设计哲学的路由加载体验。