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 中定义,只应用于该目录下的页面。

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

相关文章
|
12月前
|
网络架构
一文带你了解 Next Route 使用
一文带你了解 Next Route 使用
230 1
|
11月前
|
存储 安全 Cloud Native
从数据风险出发的云上数据安全最佳实践
本文介绍了从数据风险出发的云上数据安全最佳实践,涵盖数据泄露现状及原因分析,以及基于云的安全机制。文章详细探讨了以云为基础实现数据全链路可视可控的方法,包括资产可见可控、数据安全中心、治理闭环和自动化智能化的数据安全治理能力。通过云原生方案,企业可以更高效地识别、预警和处置数据风险,确保数据安全。文中还提到多项免费工具和服务,帮助企业降低数据泄露风险并减少安全投入。
391 60
|
12月前
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
2666 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
12月前
一文带你封装Vue3 Echarts
一文带你封装Vue3 Echarts
1086 7
一文带你封装Vue3 Echarts
|
12月前
|
数据采集 前端开发 JavaScript
Next14 Server Components 和 Client Components 的区别
Next14 Server Components 和 Client Components 的区别
300 8
|
12月前
|
前端开发 JavaScript 搜索推荐
一文 Next / React / SSR / SSG / CSR 扫盲
一文 Next / React / SSR / SSG / CSR 扫盲
499 6
|
12月前
|
开发工具 开发者
Flutter cli 常用 指令
Flutter cli 常用 指令
240 5
|
12月前
|
存储 资源调度 JavaScript
一文带你了解PNPM以及 npm,yarn,pnpm区别
一文带你了解PNPM以及 npm,yarn,pnpm区别
836 9
|
设计模式 数据安全/隐私保护
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
这篇文章介绍了在Next.js框架下,如何处理中后台管理系统中特殊页面(如登录页)不包裹根布局(RootLayout)的问题。作者指出Next.js的设计理念是通过布局的嵌套来创建复杂的页面结构,这虽然保持了代码的整洁和可维护性,但对于特殊页面来说,却造成了不必要的布局包裹。文章提出了一个解决方案,即通过判断页面的skipGlobalLayout属性来决定是否包含RootLayout,从而实现特殊页面不包裹根布局的目标。
397 0
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
|
12月前
|
前端开发 API 数据库
Next 编写接口api
Next 编写接口api
681 3

热门文章

最新文章