Маршрутизация NextJS: зачем нужны разные клиентские и серверные маршруты? - PullRequest
0 голосов
/ 20 декабря 2018

Я немного новичок в React, но совершенно новичок в NextJS, чему я пытаюсь научить себя.Я изучал руководство по началу работы с NextJS, а также смотрел некоторые другие учебники.Я не понимаю, почему существует необходимость различать клиентские маршруты и маршруты на сервере, то есть почему клиентский маршрут, приведенный в качестве примера, использует запрос, а серверный маршрут - нет.Я знаю, что я не вижу леса за деревьями, поэтому, если кто-нибудь сможет указать мне правильное направление «гроккинга» маршрутов NextJS, я буду признателен.

С это учебник, на стороне клиента у нас может быть

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

, который требует от нас (казалось бы) настроить сервер Express и обработать маршрут

/blog/:slug

OK.Но почему?Почему локальная ссылка не просто

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

?Или, в качестве альтернативы, почему NextJS не обрабатывает на стороне сервера маршрут /blog?slug=${slug}?

Я могу следить за тем, что делает учебное пособие по началу работы с сайтом NextJS (я сам ввожу код и проверяю его),но что касается маршрутизации, я немного растерялся из-за что я делаю и почему .Очевидно, что здесь я упускаю важный (и элементарный) элемент, и был бы признателен за подсказки относительно ошибки моих путей.

1 Ответ

0 голосов
/ 23 декабря 2018

Если вы посмотрите на маршрут

/blog/${slug}

Здесь слаг может принимать разные значения в качестве параметра.Если вы хотите, чтобы NextJ обрабатывал такие маршруты, вам нужно реализовать маршрут для каждого значения, которое может принимать slug.Например.

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

И это число может очень быстро расти.Следовательно, мы используем сервер Express, чтобы мы могли перехватить запрос для маршрутизации /blog и передать slug в качестве параметра на страницу blog.

...