我的Next.js项目文件结构与教程不同,是否可继续使用?
Next.js项目结构差异问题解答
差异原因:你碰到的是Next.js两种路由体系的区别——教程用的是Pages Router(Next.js 13之前的默认路由方案),而你创建的项目用的是App Router(Next.js 13及以后官方主推的新路由系统)。
- Pages Router靠
src/pages下的文件定义路由,_app.js作为全局应用入口处理所有页面的通用逻辑,_document.js负责定制HTML基础模板; - App Router则以
src/app为核心目录,通过layout.js(布局组件)、page.js(页面组件)来组织页面结构,是为了适配React Server Components、流式渲染等新特性设计的。
- Pages Router靠
当前结构是否可用:完全没问题。App Router是Next.js官方现在重点维护和推广的方案,支持更多现代React特性,只要你跟着适配App Router的教程学习,完全可以基于当前结构开发,不需要强行改成Pages Router的结构。
_app.js的替代方案:App Router里没有
_app.js,但它的功能可以通过以下文件实现:- 全局通用逻辑(比如全局状态、页面切换动画、全局样式引入):直接写在
app/layout.js里,这个文件会作用于所有页面; - 自定义HTML模板(对应原
_document.js):可以在app目录下创建template.js(控制页面切换时的根元素更新逻辑),或者通过layout.js结合head.js来定制页面头部内容。
- 全局通用逻辑(比如全局状态、页面切换动画、全局样式引入):直接写在
内容的提问来源于stack exchange,提问作者Aniket Kajal
相关产品推荐
相关产品推荐

