Next14 页面与布局 使用

简介: Next14 页面与布局 使用

基本页面

在 Next.js 中,页面是由 app 目录中的 .tsx 文件自动生成的。每个 .tsx 文件代表一个 URL 路径。  

// app/page.tsx
export default function HomePage() {
  return (
    <div>
      <h1>Welcome to the Home Page</h1>
    </div>
  );
}

创建了一个基本的主页组件。该文件将对应于根路径 /。  

动态路由

可以通过方括号来创建动态路由  

// app/blog/[id]/page.tsx
export default function BlogPost({ params }: { params: { id: string } }) {
  return (
    <div>
      <h1>Blog Post ID: {params.id}</h1>
    </div>
  );
}

文件对应于 /blog/:id 路径,其中 id 是动态参数。  

布局组件

布局组件通常用于共享页面间的通用结构,比如导航栏、页脚等。Next.js 14 通过 layout.tsx 文件来定义布局。  

全局布局

全局布局文件通常放置在 app 目录的根目录下,应用于所有页面。  

layout.tsx 中,children 代表当前页面内容,因此 main 部分会动态渲染不同页面的内容。  

// app/layout.tsx
export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>
        <header>
          <nav>/* 导航栏 */</nav>
        </header>
        <main>{children}</main>
        <footer>/* 页脚 */</footer>
      </body>
    </html>
  );
}

页面特定布局  

如果某些页面需要特殊布局,可以在该页面的目录下创建一个 layout.tsx 文件.

// app/dashboard/layout.tsx
export default function DashboardLayout({ children }: { children: React.ReactNode }) {
  return (
    <div>
      <aside>/* 侧边栏 */</aside>
      <main>{children}</main>
    </div>
  );
}

全局布局与页面特定布局区别

  • 全局布局:适用于整个应用程序的布局结构,通常包含全局导航、页脚和其他常见元素。在 app 根目录下的 layout.tsx 文件中定义。
  • 页面特定布局:只应用于某个页面或页面组的布局。在特定页面目录下的 layout.tsx 文件中定义,可以用于实现不同页面的独特布局需求。
app/
├── layout.tsx (全局布局)
├── page.tsx (主页)
└── dashboard/
    ├── layout.tsx (dashboard 页面特定布局)
    └── page.tsx (dashboard 主页)

最后

创建基本页面:使用 app 目录中的 .tsx 文件创建页面,每个文件代表一个 URL 路径。

全局布局:在 app/layout.tsx 中定义,应用于整个应用程序的所有页面。

页面特定布局:在特定页面目录下的 layout.tsx 中定义,只应用于该目录下的页面。

布局的层次结构:布局是嵌套的,全局布局包裹页面特定布局。

相关文章
|
存储 JSON 自然语言处理
手把手教你使用ModelScope训练一个文本分类模型
手把手教你使用ModelScope训练一个文本分类模型
|
10月前
|
网络架构
一文带你了解 Next Route 使用
一文带你了解 Next Route 使用
176 1
|
前端开发 Go C++
CSS命名规则规范整理
大家在写css的时候,经常会遇到关于命名的问题。页面上成百甚至上千的class或者id,我们就会越来越感到困扰。 所以,这样我们就很有必要整理自己的一套命名规范。
9641 0
CSS命名规则规范整理
|
7月前
|
前端开发
如何在React Router中进行路由重定向?
如何在React Router中进行路由重定向?
428 57
|
10月前
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
1928 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
10月前
一文带你封装Vue3 Echarts
一文带你封装Vue3 Echarts
858 7
一文带你封装Vue3 Echarts
|
数据处理 开发者 数据格式
Nest.js 实战 (四):利用 Pipe 管道实现数据验证和转换
这篇文章介绍了Nest.js框架中管道的概念和使用。管道是一种强大的功能,用于在请求数据到达控制器方法之前对其进行预处理,如转换、验证、清理等。文章详细解释了数据转换、数据验证、错误处理和一致性等管道的主要用途,并通过代码示例演示了如何使用内置管道和自定义管道。最后,文章总结了管道在提升应用健壮性和安全性方面的作用,认为合理利用管道可以加速开发周期,提高软件质量。
270 0
|
10月前
|
数据采集 前端开发 JavaScript
Next14 Server Components 和 Client Components 的区别
Next14 Server Components 和 Client Components 的区别
191 8
|
10月前
|
前端开发 JavaScript 搜索推荐
一文 Next / React / SSR / SSG / CSR 扫盲
一文 Next / React / SSR / SSG / CSR 扫盲
358 6
|
10月前
|
开发工具 开发者
Flutter cli 常用 指令
Flutter cli 常用 指令
170 5