javascript 在next.js页面目录中添加非页面文件有什么问题?

but5z9lq  于 2023-02-28  发布在  Java
关注(0)|答案(1)|浏览(119)

我在很多地方读到过,我们应该只在next.js页面文件夹中添加页面文件,但没有人确切地说,在页面文件夹中添加非页面文件有什么问题?
比方说,我在pages目录中添加了自定义hook和测试文件。会出什么问题呢?这样做有安全问题吗?
(我知道这可能对文件/文件夹结构不好,但我想知道是否有其他问题,如安全或其他东西)。

toiithl6

toiithl61#

Next.js读取pages目录中的文件结构,并将找到的每个文件名用作路由,这是设计上的,即Next.js就是围绕这一原则设计的,他们称之为"file-system based routing"
所以不是你“不应该”,而是你“不能”在pages文件夹中添加非页面文件。按照设计,pages文件夹中的每个文件都是一个“页面”。只有当它的格式不正确时(例如,如果它没有将react组件作为默认导出),才会抛出错误。
因此,如果你在pages目录中添加了一个你不想成为“page”(或“route”)的文件,Next.js会尝试为该文件名添加一个route,并会发生以下情况之一:

  • 或者,如果可能的话,该文件将仅仅变成一个“页面”,即使你不希望那样,
  • 或者,如果不可能,Next.js将抛出一个错误,抱怨它不能将该文件用作“页面”

还请注意,在Next.js v13中有一些新的概念,允许在“页面”文件夹下添加非页面文件,如果格式正确的话,但我还不熟悉。我认为这是所谓的“应用程序目录”。但这似乎是在“alpha”阶段,还没有准备好生产。

相关问题