next项目app router 中layout命名规范
目前正在使用next15重构项目,记录一下我偏好的目录结构和命名规范
1、目录结构
src/├── app/ # App Router 主目录│ ├── layout.tsx # Root layout│ ├── page.tsx│ └── ...│├── components/ # 组件目录│ ├── layout/ # 布局相关组件│ │ ├── Header.tsx │ │ ├── Footer.tsx│ │ ├── Sidebar.tsx│ │ └── index.ts # 统一导出│ └── ...
在 layout.tsx 中使用这些组件的示例:
import { Header, Footer } from '@/components/layout'export default function RootLayout({children,
}: {children: React.ReactNode
}) {return (<html lang="en"><body><Header /><main>{children}</main><Footer /></body></html>)
}
2、建议:
1、将布局组件放在 components/layout 目录下,便于管理和维护
2、可以创建一个 index.ts 统一导出这些组件:
export { default as Header } from './Header'
export { default as Footer } from './Footer'
export { default as Sidebar } from './Sidebar'
- 如果布局组件比较复杂,可以在每个组件下创建子组件:
components/├── layout/│ ├── Header/│ │ ├── index.tsx│ │ ├── Logo.tsx│ │ └── Navigation.tsx│ ├── Footer/│ └── Sidebar/