我是Next.js的新手。我在Pages文件夹中有我的index.js,在Pages下的组件文件夹中有3个其他文件。在该文件夹中,我有一个Signup.js,Signin.js和Lostpassword.js。我想做的是让索引页面打开到Signup.js,然后能够单击登录链接并被重定向到SignIn.js,Lostpassword.js和相应的链接也是如此。
我知道Next.js做SSR,我认为我的问题是我没有掌握客户端渲染或其他东西背后的概念。我需要指导如何在next.js环境中集成完整的React组件。
我一直在网上寻找解决方案,但当你不确定你在寻找什么时,很难找到任何东西。
我能够获得索引页面以打开SignIn.js,但“组件内”的导航被破坏,我一直收到404错误。
我试过使用,但不断得到错误的文件,因为它呈现服务器端。所以,我尝试使用,但也没有工作。我试着修改路径,把所有的东西都放在页面下面,但没有用。
1条答案
按热度按时间xmjla07d1#
Next.js使用了一个称为以服务器为中心的路由的概念,另一个术语是基于文件系统的路由器。您可以在docs中的Next.js项目中了解路由。
在Next.js中,您可以使用
link
组件(阅读更多)路由用户,该组件在概念上类似于vanilla HTML中的a
标记。或者,您可以使用next/router
中的useRouter
(read more),其行为类似于react-router
中的useHistory
。为了达到你所描述的结果,我认为你有两个主要的选择。
1.您可以根据身份验证状态/用户操作动态呈现
index.js
中的组件。1.您可以根据用户的身份验证状态将其路由到适当的页面(我推荐这种方法)。
作为第二个选项的伪代码示例,您的pages文件夹中将有一个与此类似的文件结构。对于基于文件系统的路由器,页面名称对应于路由路径:
在您的
index.js
在您的
sign-in.js