Next.js里app和pages文件夹的区别

最近开始学 Next.js,因为纯自学,有时候网上找到的学习资料都是几年前的,难免会有点 outdated,因此当自己创建的项目结构和视频里呈现的结构不一致时,难免会有点困惑。

例如,今天遇到的第一个问题就是,视频里 up 主创建一个新的项目时,项目结构是 src 文件夹下有一个 pages 文件夹,用来管理路由,pages/index.tsx 文件是项目的入口页面文件。如图所示:

在这里插入图片描述

而我自己在创建项目后,生成的结构却是这样的:

在这里插入图片描述

可以看出现在的结构里,src 目录下只有 app 目录,app 底下有 page.tsx 文件,作用和之前的 index.tsx 类似,但是名字换了。

经过一番了解,得知 Next.js 13 以后支持 App Router,也就是这里看到的 app 目录,那么在 13 之前用的是 pages 目录来管理路由。那这两个目录的区别是什么,以及如何使用呢,这里根据我所收集的资料做一下简单的讲解:

pages 目录:传统的 Next.js 路由方式,每个文件和文件夹自动映射到 URL 路径。适合简单、直接的页面和 API 路由设置。

  • 自动路由:每个文件和文件夹都会被映射到相应的 URL 路径。例如,pages/index.js 会被映射到 /pages/about.js 会被映射到 /about

  • API 路由:在 pages/api 目录中的文件会被映射为 API 路由。例如,pages/api/user.js 会被映射到 /api/user

  • 静态文件:可以在 public 目录中放置静态文件(如图片、字体等),这些文件可以通过根 URL 访问,例如,public/logo.png 可以通过 /logo.png 访问。

    my-next-app/
    ├── pages/
    │   ├── index.js
    │   ├── about.js
    │   └── api/
    │       └── hello.js
    

app 目录:Next.js 13 引入的新特性,支持 App Router,提供更加灵活的布局和嵌套路由控制。适合复杂应用需要嵌套布局和服务器组件的场景。

  • 布局和嵌套路由:允许创建嵌套布局和更细粒度的路由控制。可以在 app 目录中使用 layout.js 文件来定义布局,在同一目录下的所有页面都会使用这个布局。

  • 文件名路由:类似于 pages 目录,每个文件和文件夹都会被映射到相应的 URL 路径。

  • 服务器组件和客户端组件:支持在页面中混合使用 React 服务器组件和客户端组件。

    my-next-app/
    ├── app/
    │   ├── layout.js
    │   ├── page.js
    │   ├── about/
    │   │   └── page.js
    │   └── dashboard/
    │       ├── layout.js
    │       └── page.js
    

简单总结一下就是,以前的路由管理用的是 pages 目录,而 Next.js 13 后,支持 App Router,即在 app 目录下通过 page.js 的形式来对路由进行管理。注意:pages 目录下的自动路由对应 index.tsx,app 目录下的自动路由对应 page.tsx。否则,如果 pages 目录下写的是 page.tsx,或是 app 目录下写的是 index.tsx,就无法成功通过路由显示(可能得多加一级路径才可以显示)。

放在 app 目录下的文件,会应用 app 目录下的 layout.tsx 文件里配置的布局,而 pages 目录下的不会应用那个布局。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/644572.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

光速入门python的OpenCV

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理python的OpenCV模块的关键知识点 争取用最短的时间入门OpenCV 并且做到笔记功能直接复制使用 OpenCV简介 不浪费时间的介绍: 就是类似于ps操作图片。 至于为什么不直接用ps,因为只有程序能…

社交媒体数据恢复:绿洲

本教程将向您展示如何在绿洲平台上备份和恢复数据,但不涉及推荐任何具体的数据恢复软件。 一、绿洲平台数据备份 为了确保数据的安全,在日常使用过程中,我们需要定期备份绿洲平台上的数据。以下是备份绿洲平台数据的步骤: 登录绿…

【SpringCloud】服务注册与发现

目录 Eureka/注册中心简介模式 使用Eureka实现注册中心1.创建一个名称为demo-eureka-server的Spring Boot项目2.添加项目依赖3. 在启动类添加启动注解4.添加配置信息Eureka的自我保护机制为Eureka Server添加用户认证1.添加依赖2. 添加配置信息3.添加放行代码4.启动服务&#x…

springboot+vue+mybatis校园兼职平台+PPT+论文+讲解+售后

社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个学生的使用。互联网具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要…

VMware虚拟机中ubuntu使用记录(10)—— 如何在Ubuntu18.04中使用自己的单目摄像头运行ORB_SLAM3(亲测有效,踩坑记录)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、ORB_SLAM3源码编译二、ORB_SLAM3实时单目相机测试1. 查看摄像头的话题2. 运行测试 三. 运行测试可能的报错1. 报错一(1) 问题描述(2) 原因分析(3) 解决 2. …

得帆信息PMO总监李健达受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 上海得帆信息技术有限公司aPaaS业务线副总裁、PMO总监李健达先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“AI时代的PMO工作法”。大会将于6月29-30日在北京举办,敬请关注! 议题简要&#x…

天干物燥小心火烛-智慧消防可视化大屏,隐患防治于未然。

智慧消防可视化大屏通常包括以下内容: 1.实时监控: 显示消防设备、传感器、监控摄像头等设备的实时状态和数据,包括火灾报警、烟雾报警、温度报警等。 2.建筑结构: 显示建筑物的结构图和平面图,包括楼层分布、消防通…

HDFS 组织架构

优质博文:IT-BLOG-CN 一、HDFS 概述 HDFS 产生背景: 随着数据量越来越多,一个系统存储不下所有的数据,那么就需要分配到多个操作系统的磁盘中进行存储,但是不方便管理和维护,迫切需要一种系统来管理多台机…

技术前沿 |【BLIP:统一理解和生成的自举多模态模型研究】

BLIP:统一理解和生成的自举多模态模型研究 摘要引言一、BLIP模型概述二、 BLIP模型在多模态任务中的应用三、总结 摘要 本文介绍了BLIP(Bootstrapping Language-Image Pre-training)模型,一个前沿的多模态模型,通过自…

2024 一键批量下载雪球和东方财富文章导出excel和pdf

之前分享过雪球批量下载工具2023 批量下载雪球文章导出pdf,以市场高标解读这个号为例,下载效果: 下载文章后用我开发的htmltopdf.exe批量转换html为pdf,不过要注意不要放在中文目录下,否则提示错误 utf-8 codec cant d…

数据结构之栈和队列(超详解

目录 一.栈 1.栈的基本概念 2.栈的基本操作 3.栈的储存结构 ①栈的顺序储存 (1)基本概念 (2)代码实现 ②栈的链式储存 (1)基本概念 (2)代码实现 二.队列 1.队列的基本概念 2.队列的基本操作 3.队列的储存结构 ①队列的链式储存 (1)基本概念 ​编辑 (2)代码实现 ②…

浅析3D NAND多层架构的可靠性问题

SSD的存储介质是什么,它就是NAND闪存。那你知道NAND闪存是怎么工作的吗?其实,它就是由很多个晶体管组成的。这些晶体管里面存储着电荷,代表着我们的二进制数据,要么是“0”,要么是“1”。 目前业内3D-NAND工…

【吊打面试官系列】Java高并发篇 - ReadWriteLock 是什么 ?

大家好,我是锋哥。今天分享关于 【ReadWriteLock 是什么 ?】面试题,希望对大家有帮助; ReadWriteLock 是什么 ? 首先明确一下,不是说 ReentrantLock 不好,只是 ReentrantLock 某些时候有局限。 …

【动态规划】斐波那契数列模型(C++)

目录 1137.第N个泰波那契数 解法(动态规划) 算法流程 1. 状态表⽰: 2. 状态转移⽅程: 3. 初始化: 4. 填表顺序: 5. 返回值: C算法代码 优化: 滚动数组 测试: …

bootstrap实现九宫格效果(猫捉老鼠游戏)

最近,孩子的幼儿园让家长体验“半日助教活动”,每个家长需要讲授15-20分钟的课程。作为一名程序员,实在没有能教的课程,只能做了一个小游戏,带着小朋友们熟悉数字。 效果大致是这样的。九宫格的左上角是一只小猫图片&…

一张图片中有多个一样的目标物体,分别进行识别定位分割(Python实现)

需求: 一张图片中有多个目标物体,将多个目标物体进行识别分割定位 import cv2 import numpy as npdef show_photo(name,picture):cv2.imshow(name,picture)cv2.waitKey(0)cv2.destroyAllWindows()img_path r"test3.png" img cv2.imread(img…

社交媒体数据恢复:聊天宝

请注意,本教程仅针对聊天宝应用程序,而非其他聊天软件。以下是详细的步骤: 首先,请确保您已经登录了聊天宝应用程序。如果您尚未登录,请使用您的账号登录。 在聊天宝主界面,找到您希望恢复聊天记录的对话框…

LeetCode - 数组 - 四数之和

题目地址 描述 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复)&#x…

【机器学习与大模型】驱动下的应用图像识别与处理

摘要: 本文深入探讨了机器学习在图像识别与处理领域的应用,特别是在大模型的推动下所取得的巨大进展。详细阐述了图像识别与处理的基本原理、关键技术,以及机器学习算法和大模型如何提升其性能和准确性。通过实际案例分析了其在多个领域的广泛…

[WUSTCTF2020]level3

base64换表 但是这的表有一个引用 模拟执行 #DRKCTF{}aABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/ flag[ord(i) for i in a] for i in range(0,10):flag[i],flag[19-i]flag[19-i],flag[i] for i in flag:print(chr(i),end)新表 TSRQPONMLKJIHGFEDCBAU…