- 这里说index.js充当目录的根。所以如果我在URL中输入
/blog
,它会把我带到pages/blog/index.js
文件。
现在我的问题是我有pages/blog/subcomponent.js
,我不希望用户访问/blog/subcomponent
,因为它是一个子组件。我怎么能这么做呢?
- https://nextjs.org/docs/app/building-your-application/routing/pages-and-layouts的
现在我看到了next.js的另一个文档,我们可以使用page.js
而不是index.js
,并且只有page.js
可以公开访问。
- 那么这是否意味着如果不是
page.js
,则无法访问其他文件?
我真的很困惑。如果你能帮忙的话
1条答案
按热度按时间0lvr5msh1#
Nextjs中有两种类型的路由:
1.页面路由器
1.应用路由器
Pages router(共享的第一个链接)
如果页面组件在pages目录的某个文件夹中,则强制使用index.tsx,如果不想使用文件夹,则可以直接在pages目录中创建一个带有页面名称的文件。例如:
pages/blog.js → /blog(wihtout文件夹)
pages/blog/index.js → /blog(在文件夹中)
应用路由器(共享的第二个链接)
如果页面组件在app目录的某个文件夹中,则强制使用pages.tsx,如果不想使用文件夹,则直接在app目录中创建一个以页面名称命名的文件即可。例如:
app/blog.js → /blog(wihtout文件夹)
app/blog/pages.js → /blog(在文件夹中)
至于文件夹中的其他文件,只要您的文件夹中有pages.tsx或index.tsx,它们就无法访问。但将组件放置在页面或应用程序文件夹中并不是一个好的做法。您应该只将页面主组件放在这些目录中。