Bulunamadı Sayfaları
Coddy'nin React Journey'sinin Next.js Temel Esasları bölümünün bir parçası. Ders 9 / 47.
Dinamik bir rota, hata verecek kadar cömerttir. app/menu/[slug]/page.jsx, /menu/pizza ile eşleşir ve /menu/asdfgh ile de aynı mutlulukla eşleşerek var olmayan bir yemek için yemek sayfası oluşturur.
Next.js size düzeltmenin her iki kısmını da sunar.
1. 404 ekranı. page.jsx ve layout.jsx ile aynı özel dosya adı grubunda yer alan not-found.jsx adlı bir dosya:
// app/not-found.jsx
export default function NotFound() {
return <h1>We don't have that</h1>;
}Bunu app/not-found.jsx konumuna yerleştir; tüm uygulamayı kapsar: hiçbir şeyle eşleşmeyen her URL, yerleşik sade 404 sayfası yerine buraya yönlendirilir.
2. Tetikleyici. Bazen URL bir rotayla eşleşir ancak veriler mevcut değildir. Bu, /menu/asdfgh durumudur ve bunu yalnızca kodunuz belirleyebilir. notFound() çağırın:
import { notFound } from 'next/navigation';
const dishes = ['pizza', 'pasta'];
export default async function Dish({ params }) {
const { slug } = await params;
if (!dishes.includes(slug)) {
notFound();
}
return <h1>{slug}</h1>;
}notFound() bir değer döndürmez ve onu döndürmezsiniz: onu çağırmak sayfayı tam orada durdurur ve en yakın not-found.jsx dosyasını gösterir. if sonrasındaki her şey yemeğin gerçekten var olduğunu güvenle varsayabilir; bu nedenle koruma en üstte yer alır.
Görev
Orta/menu/sushi şu anda menüde olmayan bir yemek için yemek sayfası oluşturuyor. Bu açığı kapat.
app/not-found.jsxdosyasını tamamla.id="not-found-title"değerine sahip bir<h1>döndüren bir bileşeni varsayılan olarak dışa aktar; metin tam olarakDish not foundolmalı.app/menu/[slug]/page.jsxiçindenotFoundögesininext/navigationiçinden içe aktar.slugdishesdizisinde değilse herhangi bir şey oluşturmadan öncenotFound()çağrısını yap.
/menu/pizza yine çalışmalı.
Kendin dene
import './globals.css';
export const metadata = {
title: 'My App',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Next.js Temel Esasları bölümündeki tüm dersler
2Yönlendirme ve Bağlantılar
Klasörler Yoldurİç İçe YollarSayfaları BağlamaDinamik YollarBulunamadı SayfalarıÖzet: Yönlendirme