You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js能否添加全局默认loading.js,使其作用于所有子页面?

在Next.js App Router中设置全局默认loading.js

可以实现全局默认的loading.js,让它作用于所有未自定义loading的子页面,具体方法如下:

1. 根层级全局默认loading

在app目录的根层级(与layout.js同级)创建loading.js文件。这个loading组件会作为全局 fallback:所有子路由段如果没有自己定义loading.js,就会自动使用这个根级的loading。

2. 分组路由默认loading

如果只需要给某一组路由设置统一默认loading,在该组的父布局目录下创建loading.js即可。比如app/dashboard目录下的loading.js,会作用于dashboard下所有未自定义loading的子页面(如/dashboard/settings、/dashboard/stats)。

关于你遇到的问题解释

你之前在page.js同级添加的loading.js,仅作用于当前路由段的page.js,而非该路由段下的子页面。这是因为App Router中loading.js的作用规则是:子路由段优先使用自己的loading.js,如果没有才会向上查找父级路由段的loading.js。

示例目录结构

app/
├── layout.js
├── loading.js       # 全局默认loading
├── page.js
├── blog/
│   ├── layout.js
│   ├── loading.js   # blog组的默认loading,覆盖全局
│   ├── page.js
│   └── post/
│       └── page.js  # 使用blog目录的loading.js
└── dashboard/
    ├── layout.js
    ├── page.js
    └── settings/
        └── page.js  # 使用根目录的loading.js

内容的提问来源于stack exchange,提问作者Steve Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 21:14:55