NextJS路由:为什么需要有不同的客户端和服务器路由?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NextJS路由:为什么需要有不同的客户端和服务器路由?相关的知识,希望对你有一定的参考价值。

我对React有些陌生,但对NextJS来说是全新的,我正在努力自学。我一直在浏览NextJS“入门”教程,以及其他一些教程。我不明白为什么需要区分客户端路由和服务器上的路由,也就是说,为什么作为示例给出的客户端路由使用查询,而服务器路由不使用。我知道我没有看到森林里的树木,所以如果有人能指出我在'grokking'NearJS路线的正确方向,我会很感激。

this教程,我们可能在客户端

<Link href={`/blog?slug=${slug}`} as={`/blog/${slug}`} prefetch>
  ...
</Link>

这需要我们(似乎)设置一个Express服务器并处理路由

/blog/:slug

好。但为什么?为什么不是简单的本地链接

<Link href={`/blog/${slug}`}  prefetch>
      ...
    </Link>

?或者,或者,为什么NextJS不处理服务器端路由/blog?slug=${slug}

我可以按照NextJS网站的“入门”教程(我自己输入代码并测试它)来做,但就路由而言,我有点迷失了我正在做什么以及为什么。很明显,我在这里错过了一个关键的(和基本的)元素,并且会理解我的方式错误的线索。

答案

如果你看路线

/blog/${slug}

这里slug可以采用不同的值作为参数。如果您希望NextJs处理此类路由,您需要为slug可以采用的每个值实现一个路由。例如。

/blog/slug1
/blog/slug2
/blog/slug3

这个数字可以很快增长。因此,我们使用Express服务器,以便我们可以拦截请求以路由/blog并将slug作为参数传递给blog页面。

以上是关于NextJS路由:为什么需要有不同的客户端和服务器路由?的主要内容,如果未能解决你的问题,请参考以下文章

NextJS 中路由器和链接的典型区别

如何在NGINX中路由静态文件和不同的应用程序?

React/nextJS:如何调试 s-s-r react 应用的不同节点?

基于react的nextjs服务端渲染框架学习使用

NextJS:如何在根处理多个动态路由

NextJS 在客户端和服务器端获取数据