Dynamiczne sciezki w NextJS

0

Hej, chce stworzyc dynamiczne sciezki ksiazki/[name] i artykuly/[name] w NextJS. Oczywiscie moglbym stworzyc foldery ksiazki i artykulyi tam wrzucic folder [name] i plik page.tsx ale problem polega na tym ze struktura obu tych stron jest niemal identyczna tylko wlasnie roznia sie adresem url, adresem url pociagniecia danych (fetch(../books/:id vs fetch(../articles/:id) itp wiec chcialbym uniknac kopiowania i wklejania. Zastanawiam sie czy da sie jakos to upchac w jednym miejscu ale zeby roznily sie adresy url, cos w stylu [book|article]/[name]/page.tsx i potem w page.tsx miec Page({params}: {params: {bookOrArticle: "book" | "article", name: string}) i uzyc bookOrArticle zeby odroznic kiazki od artyykulow. Da sie tak?

0

Takiego ora to chyba nie postawisz (choć nie jestem pewny tak szczerze), ale... routing w formie plików zamiast klasycznej listy <Route> w kodzie jest na swój sposób pociągający (choć po latach to mam dość już tego routingu, choć rozumiem, że to wygodne z perspektywy budowania potem kodu), ale idą za tym ograniczenia i czasem trzeba zduplikować trochę kodu. Teraz or, a potem się okaże, że przydałoby się if (warunek) w nazwie pliku wpisać 😀

Ogólnie mam wrażenie, że Cię ciągnie w złym kierunku. Uniwersalny routing, potem jakaś magiczna zmienna, która ma coś rozdzielać, żeby potem coś tam wywołać warunkowo. Po co? Utruniasz/uniemożliwiasz code splitting i zaniżasz czytelność.

A jak musisz to zrób sobie po prostu [type]/[name]/page.tsx

a potem

if (type === "book") {
  return <Book ... /> // czy coś tam
}
if (type === "article") {
  return <Article ... />
}
return notFound()

1 użytkowników online, w tym zalogowanych: 0, gości: 1