Next.js'deki , bir rotayı oluşturmak için gereken JavaScript miktarını azaltarak bir uygulamanın ilk yükleme performansını artırmaya yardımcı olur.
İstemci Bileşenlerinin ve içe aktarılan kitaplıkların yüklenmesini ertelemenize ve bunları yalnızca gerektiğinde istemci paketine dahil etmenize olanak tanır. Örneğin, bir kullanıcı açmak için tıklayana kadar bir modalin yüklenmesini ertelemek isteyebilirsiniz.
Next.js'de tembel yüklemeyi uygulayabileceğiniz iki yol vardır:
next/dynamic ile Dinamik İçe Aktarımları Kullanma
ile Kullanımı
Varsayılan olarak, Sunucu Bileşenleri otomatik olarak edebilir ve kullanıcı arayüzü parçalarını sunucudan istemciye aşamalı olarak göndermek için akışı kullanabilirsiniz. Tembel yükleme İstemci Bileşenleri için geçerlidir.
next/dynamic
next/dynamic, ve 'in bir bileşimidir. Artımlı geçişe izin vermek için app ve pages dizinlerinde aynı şekilde davranır.
Sunucu Bileşenlerini İçe Aktarma (Importing Server Components)
Bir Sunucu Bileşenini dinamik olarak içe aktarırsanız, Sunucu Bileşeninin kendisi değil, yalnızca Sunucu Bileşeninin alt bileşenleri olan İstemci Bileşenleri lazy-load edilecektir.
// app/page.js
import dynamic from "next/dynamic";
// Server Component:
const ServerComponent = dynamic(() => import("../components/ServerComponent"));
export default function ServerComponentExample() {
return (
<div>
<ServerComponent />
</div>
);
}
React.lazy() ve kullanıldığında, İstemci Bileşenleri varsayılan olarak önceden render edilecektir (SSR).
Harici kütüphaneler fonksiyonu kullanılarak isteğe bağlı olarak yüklenebilir. Bu örnekte bulanık arama için fuse.js harici kütüphanesi kullanılmaktadır. Modül, yalnızca kullanıcı arama girdisini yazdıktan sonra istemciye yüklenir.
Adlandırılmış bir dışa aktarımı dinamik olarak içe aktarmak için, işlevi tarafından döndürülen Promise'den geri döndürebilirsiniz: