Kod Bölme — Giriş Ekranı Neden Grafik Kütüphanesini İndiriyor?
Önce şunu oku: Core Web Vitals — Sayfa Ne Zaman Gerçekten Hazır?
30 saniyede özet
Bütün uygulama tek bir JavaScript paketindeyse, yalnızca şifre isteyen giriş ekranı bile grafik ve PDF kütüphanelerini indirir. Paketi sayfalara bölmek ve nadir kullanılan ağır kodu kullanıldığı anda yüklemek ilk açılışı hafifletir.
Bir günlük geziye çıkıyorsun. Bütün dolabı sırtlarsan daha ilk adımda yorulursun. Yalnızca o günün çantasını alırsın; şemsiyeyi de yağmur başlayınca çıkarırsın.
-
Bayt: Giriş ekranı telefonda neden bu kadar geç açılıyor? Sadece iki kutu var!
-
Sen: Network sekmesine baktım: tek bir büyük JavaScript dosyası iniyor.
-
Bayt: İçinde grafik kütüphanesi de var, PDF kütüphanesi de... Giriş ekranında ikisi de yok.
-
Bayt: Bütün dolabı sırtlamışız. Bugün sadece bir çanta lazım.
Tek paket neden ağırdır?
Derleme aracı, uygulamanın bütün kodunu varsayılan olarak tek bir pakette toplayabilir. O zaman ilk ekran, kullanıcının belki hiç açmayacağı sayfaların kodunu da indirir.
Giriş ekranı yalnızca iki kutu ve bir düğmedir. Ama tek pakette raporlar sayfasının grafik kütüphanesi ve PDF dışa aktarıcısı da vardır.
Kafam karıştı, daha basit anlat
Tek paket, kullanıcının o an görmediği sayfaların kodunu da ilk ekrana indirir.
Bütün uygulama tek bir JavaScript paketindeyse giriş ekranı ne indirir?
Büyük bir JavaScript paketi telefonda neden ilk açılışı yavaşlatır?
Böl, ve ağırı kullanıldığında getir
Paketi sayfalara böldük. Raporlar sayfası, dosyanın en üstünde PDF kütüphanesini içe aktarıyor. Butona hiç basmayan bir kullanıcı raporlar sayfasını açarsa PDF kütüphanesini indirir mi? Cevabı göster
İndirir. Dosyanın en üstündeki içe aktarma, sayfa açılır açılmaz yüklenir. PDF kütüphanesini yalnızca butona basınca istemek için onu o anda, dinamik olarak içe aktarmak gerekir.
Adım adım oku
- Bütün dolabı sırtla: ilk adım çok ağır.
- Yalnızca bugünün çantası: hafif çıkış.
- Yağmur başlayınca şemsiyeyi al.
- Gerekeni şimdi, nadir olanı gerektiğinde.
kod bölmeUygulamanın JavaScript'ini parçalara ayırıp her parçayı gerektiğinde indirmek. İlk ekran yalnızca kendi ihtiyacını yükler.Sözlükte gör →, uygulamayı parçalara ayırır; her sayfa kendi parçasını, açıldığı anda indirir. React’te bunun en kolay yolu sayfaları lazy ile yüklemektir.
Nadir kullanılan ağır bir kütüphane için dinamik importBir modülü dosyanın başında değil, çalışma anında await import('...') ile yüklemek. Nadir kullanılan ağır kod için idealdir.Sözlükte gör → kullanılır: await import('...') butona basıldığında çalışır. Bazen en büyük kazanç ise bir kütüphaneyi hiç indirmemektir; tarihleri biçimlendirmek için tarayıcının hazır Intl aracı yeter.
Kafam karıştı, daha basit anlat
Sayfaları ayrı parçalara böl. Nadir kullanılan ağır kodu, kullanıldığı anda yükle.
Kod bölme (code splitting) nedir?
Nadir kullanılan ağır bir PDF kütüphanesini yalnızca butona basılınca yüklemek için ne kullanılır?
Kendin gör
Giriş ekranı ne kadar JavaScript indiriyor?
Tohum 4489- Giriş ekranı
- Hesaplar
- Havale
- Raporlar
- “PDF olarak indir”e basıldı
İlk ekran: 0 KB · Toplam: 0 KB
Şu an ne oldu?
Tek paket
Önce giriş ekranı açılıyor; okuyucu sonra sırayla diğer sayfalara geçiyor.
Görevler0/3
Giriş ekranı 500 KB’tan fazla indirsinaçık
İpucu
Her şey tek pakette.
PDF kütüphanesi yalnızca butona basılınca insinaçık
İpucu
Dinamik import.
Giriş ekranı 110 KB ya da daha az indirsinaçık
İpucu
Böl, ve her sayfanın taşıdığı kütüphaneye bak.
Olay günlüğü (0)
Henüz olay yok. Oynat veya adımla.
- Varsayılanla oynat. Giriş ekranı 535 KB indirdi; grafik ve PDF kütüphaneleri dahil.
- “Sayfa başına parça” seç. Giriş ekranı 175 KB’a indi. Ama raporlar sayfası PDF’i de getirdi.
- “Sayfa başına + PDF tıklayınca” seç. PDF yalnızca butona basılınca indi.
- “Intl” seçeneğini de aç. Tarih kütüphanesi hiç inmedi; giriş ekranı 105 KB.
Sayfalar bölündü, ama raporlar sayfası PDF kütüphanesini en üstte içe aktarıyor. Ne olur?
React'te bir sayfayı kendi parçasında yüklemenin kolay yolu nedir?
Tuzaklar
Her şeyi ayrı parça yapmak. Yüzlerce küçük parça, yüzlerce ayrı istek demektir. Sayfa düzeyinde bölmek ve yalnızca gerçekten ağır kütüphaneleri ayırmak genelde yeter.
Beklerken boş ekran göstermek. Parça inerken kısa bir yükleniyor durumu göster; ekran boş kalırsa kullanıcı bir şeyin bozulduğunu sanır.
Ölçmeden tahmin etmek. Hangi kütüphanenin ne kadar yer kapladığını derleme çıktısında ya da bir paket görselleştiricisinde gör. Sürprizler çoğu zaman küçük görünen bir importtan çıkar.
Kafam karıştı, daha basit anlat
Parçaları abartma, beklerken bir şey göster, paketi tahmin etme, ölç.
Parça inerken ekranda ne gösterilmeli?
Derinleş · Mobil bankacılık: sayfa başına parça, PDF tıklayınca 4 dosya · ~59 satır · ilk okumada atlayabilirsin
Kendini sına
Tek paket, kullanıcının o an görmediği sayfaların kodunu da indirir.
Her fonksiyonu ayrı bir parçaya bölmenin sakıncası nedir?
Aklında kalacak üç şey
- 1 Tek bir paket, kullanıcının o an görmediği sayfaların kodunu da ilk ekrana yükler. Telefonda ve yavaş bağlantıda ilk açılış bunu bekler.
- 2 Kod bölme, uygulamayı parçalara ayırır: her sayfa kendi parçasını, ihtiyaç duyulduğu anda indirir.
- 3 Nadir kullanılan ağır bir kütüphane, dosyanın en üstünde değil, kullanıldığı anda dinamik import ile yüklenir. Bazen en iyi kazanç, bir kütüphaneyi hiç indirmemektir.
4 kart sonraki derste seni bekliyor