Next.js 布局
基础布局
布局是在应用程序的多个页面之间共享的 UI。 layout.tsx
文件会用来包裹页面的内容,它接受一个 children
属性,并在布局中渲染。
根布局的示例代码:
1 | // app/layout.tsx |
文件结构示例:
1 | app |
渲染流程:
about/page.tsx 内容 → app/layout.tsx 布局中渲染
嵌套布局
如果在某个子目录(如 about)中创建一个 layout.tsx,
则该布局会只作用于该目录及其子路由。
显示层级:
about/page.tsx → about/layout.tsx → app/layout.tsx
这样可以为某些页面单独定制布局,而不影响全局。
多个根布局
Next.js 支持 路由分组 (Route Groups) 来实现多个根布局。
1. 创建一个路由分组目录(名称用括号括起来,如 (admin))
2. 在分组目录下添加自己的 layout.tsx,该布局将只作用于分组内的页面。
示例结构:
1 | app |
这样 (admin) 和 (shop) 互不干扰,各自拥有不同的根布局。
总结
- layout.tsx 用于定义布局,接收 children。
- 根布局放在 app/layout.tsx。
- 嵌套布局放在子目录中,只影响该目录。
- 使用路由分组可实现多个独立的根布局。