Next.js 应用目录与路由分组:构建灵活的页面布局
Next.js 的应用目录(app 目录)是组织路由和布局的关键。app 目录中通常包含 layout.jsx 和 page.jsx 文件,分别定义全局布局和页面内容。
全局布局 (app/layout.jsx)
app 目录根部的 layout.jsx 文件定义了所有页面的全局布局。除非另行指定,所有页面都将继承这个布局。
为首页创建专用布局
有时,我们需要为首页(/ 路径)创建独立的布局,与其他页面有所区别。这时,Next.js 的路由分组功能就派上用场了。路由分组允许我们组织路由,而不改变 URL 结构。
解决方案:利用路由分组
实现方法如下:
目录结构:
app ├── layout.jsx # 全局布局,应用于除首页外的所有页面 └── (home) ├── layout.jsx # 首页专用布局 ├── page.jsx # 首页内容
关键步骤:
- 文件夹命名: 使用括号 () 包裹文件夹名 (home),表示这是一个路由分组。这不会改变 URL 路径,首页仍通过 / 访问。
- 文件移动: 将 page.jsx 移动到 (home) 文件夹,并在该文件夹内创建 layout.jsx,定义首页的专用布局。
效果:
- app/layout.jsx 定义的全局布局将应用于所有非首页路由。
- app/(home)/layout.jsx 定义的布局只应用于首页 /,使首页拥有独特的样式或行为。
优势:
- 模块化: 独立定制每个路由或路由组的布局,提高代码可维护性。
- SEO 和 UX: 针对不同页面优化 SEO 或提升用户体验。
注意事项:
- 严格遵守路由分组的命名约定(使用括号),避免路由冲突。
通过这种方法,我们可以保持目录结构清晰,同时实现灵活的页面布局设计,让网站的每个部分都能拥有独特的个性和结构,而不会影响 URL 路径。 您可以根据实际需求调整和扩展此方法。