Next.js 应用程序中的路由和导航 -- 知识铺
应用程序中的路线/导航
导航是指用户浏览 Next.js 网站的方式。路由和链接是可用于定义站点导航的两种主要方法。
由于每个组件的内置路由定义,Next.js 中的路由很容易理解。要优化应用程序路由,了解索引、嵌套和动态路由非常重要。
指数
像 index.js
这样的索引文件将路由到应用程序的起始点 /
,而不是 /index
。您可以通过创建多个 index
文件来利用这一点,这些文件充当站点内不同导航路径的登陆页面或起点。
<span><span>-</span><span> pages</span></span><br><span><span> </span><span>-</span><span> index</span><span>.</span><span>js </span><span>#</span><span> found at </span><span>`/`</span></span><br><span><span> </span><span>-</span><span> users</span></span><br><span><span> </span><span>-</span><span> index</span><span>.</span><span>js </span><span>#</span><span> found at </span><span>`/users`</span></span><br><span><span> </span><span>-</span><span> account</span><span>.</span><span>js </span><span>#</span><span> </span><span>`/users/account`</span></span><br>
例如, pages
下的 index.js
页面是在不输入其他路由的情况下到达的站点的主页。 users
下的第二个 index.js
是 users
路径的登录页面,通过输入 <siteName>/users
到达。
嵌套
嵌套路由是只能通过共享父路由访问的路由,例如 /users/account
。您可以将嵌套路由视为计算机上的嵌套文件,因为您必须导航所有更高的组件才能到达嵌套组件。
动态路线
我们还可以在路由中包含参数以允许可变行为。动态页面是用方括号定义的。这个功能本质上允许我们像函数一样将信息传递到页面。
例如,我们可以重新制作 user
组件,以允许每个用户拥有自己的帐户页面。
<span><span>#</span><span> </span><span>...</span></span><br><span><span> </span><span>-</span><span> users</span></span><br><span><span> </span><span>-</span><span> index</span><span>.</span><span>js</span></span><br><span><span> </span><span>-</span><span> </span><span>[</span><span>account</span><span>.</span><span>js</span><span>]</span><span> </span><span>#</span><span> </span><span>`/users/[accountName]`</span></span><br>
通过此设置,用户可以在 URL 中输入他们的帐户名称,并立即转到他们的帐户信息页面,而不是从 users
开始。换句话说,我可以输入我的帐户名 /users/educative
来访问一个动态页面,该页面填充与输入的帐户名相关的信息。
account.js
文件需要包含条件语句,告诉它根据传递的参数做什么。
|
|
链接
您还可以引入客户端点击链接,以允许用户在没有 URL 栏的情况下浏览网站。 Link React 组件是 Next.js 中链接的关键。
Link 组件采用 href
参数,其中填充了目标组件的文件路由。这将在当前页面和在输入的路由中找到的页面之间创建链接。例如,如果您将 <Link href= "/users/">
添加到 hello.js
,您将创建一个从 hello.js
到 users
着陆页的链接。
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek001/post/20240507/Next.js-%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%E7%9A%84%E8%B7%AF%E7%94%B1%E5%92%8C%E5%AF%BC%E8%88%AA--%E7%9F%A5%E8%AF%86%E9%93%BA/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com