React Academy · Ders

Paket Analizi ve Kod Bölme Stratejisi

Paket boyutunu rollup-plugin-visualizer ile analiz edin ve rotaya göre bir kod bölme stratejisi belirleyin.

2. ders / 412 adım

Paket Analizi ve Kod Bölme Stratejisi, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.

Paket Boyutu Neden Önemlidir?

Büyük JavaScript paketleri Etkileşime Hazır Olma Süresini geciktirir. Sayfa etkileşimli hâle gelmeden önce her KB JS'nin indirilmesi, ayrıştırılması ve çalıştırılması gerekir; bu durum özellikle yavaş mobil ağlarda belirgindir.

rollup-plugin-visualizer ile Analiz

Vite projelerinde, paketinizin hangi modüllerinin en çok yer kapladığını gösteren bir ağaç haritası oluşturmak için görselleştirici eklentisini kullanın.

// vite.config.ts
import { visualizer } from 'rollup-plugin-visualizer';

export default defineConfig({
  plugins: [
    visualizer({ open: true, gzipSize: true, brotliSize: true })
  ],
});

// After build, open the generated HTML file to explore the treemap

Next.js Paket Analizcisi

Next.js'teki sunucu ve istemci paketlerini analiz etmek için @next/bundle-analyzer kullanın.

npm install @next/bundle-analyzer

// next.config.js
const withBundleAnalyzer = require('@next/bundle-analyzer')({
  enabled: process.env.ANALYZE === 'true',
});

module.exports = withBundleAnalyzer({});

// Run:
// ANALYZE=true npm run build

Rota Tabanlı Kod Bölme

En etkili bölme yöntemi, her rotanın kodunu yalnızca kullanıcı o rotaya geçtiğinde yüklemektir. React Router'daki lazy() ve Next.js App Router bunu otomatik olarak yapar.

// React Router v6 with lazy loading
import { lazy, Suspense } from 'react';

const Dashboard = lazy(() => import('./pages/Dashboard'));
const Settings = lazy(() => import('./pages/Settings'));

<Routes>
  <Route path="/dashboard" element={<Suspense fallback={<Loading />}><Dashboard /></Suspense>} />
  <Route path="/settings" element={<Suspense fallback={<Loading />}><Settings /></Suspense>} />
</Routes>

Bileşen Düzeyinde Kod Bölme

Ağır bileşenleri (haritalar, grafikler, düzenleyiciler) gerekene kadar lazy() kullanarak yüklemeyi erteleyin.

const MonacoEditor = lazy(() => import('@monaco-editor/react'));
const MapView = lazy(() => import('./MapView'));

function ProductEditor({ showMap }) {
  return (
    <>
      <Suspense fallback={<EditorSkeleton />}><MonacoEditor /></Suspense>
      {showMap && <Suspense fallback={<MapSkeleton />}><MapView /></Suspense>}
    </>
  );
}

Koşullu Özellikler için Dinamik İçe Aktarma

Büyük kütüphaneleri tüm kullanıcılar için yüklemekten kaçınmak üzere yalnızca bir özellik etkinleştirildiğinde içe aktarın.

async function exportToPDF() {
  const { default: jsPDF } = await import('jspdf'); // ~300KB — loaded on demand
  const doc = new jsPDF();
  doc.text('Hello', 10, 10);
  doc.save('export.pdf');
}

Kullanılmayan Kodların Ayıklanması

Modern paketleyiciler kullanılmayan dışa aktarımları (ölü kodu) kaldırır. Kodların kullanılmayan bölümlerinin ayıklanabilmesi için bağımlılıklarınızın ESM'yi (CJS değil) desteklediğinden emin olun ve yalnızca tek bir işlev kullanırken kütüphanelerin tamamını içe aktarmaktan kaçının.

// Bad — imports entire lodash (~70KB):
import _ from 'lodash';
const result = _.debounce(fn, 300);

// Good — imports only debounce (<2KB):
import debounce from 'lodash/debounce';
// or with tree-shaking-friendly lodash-es:
import { debounce } from 'lodash-es';

Kritik chunk'ları Önceden Yükleme

Kullanıcı geçerli sayfadayken sonraki sayfanın chunk'ını önceden yüklemek için <link rel='modulepreload'> veya Webpack sihirli yorumlarını kullanın.

// Webpack magic comment — preload on hover:
const Dashboard = lazy(() => import(/* webpackPrefetch: true */ './Dashboard'));
// or preload (higher priority):
const Dashboard = lazy(() => import(/* webpackPreload: true */ './Dashboard'));

Üçüncü Tarafların Etkisini Analiz Etme

Herhangi bir npm paketini yüklemeden önce gzip'lenmiş boyutunu görmek için bundlephobia.com veya Import Cost VS Code uzantısını kullanın.

Paket Bütçesi Belirleme

Webpack veya Vite yapılandırmasında her rota için bir boyut sınırı belirleyin. Bir chunk bütçeyi aşarsa derleme başarısız olur ve CI sırasında boyuttaki istemeden gerçekleşen artışlar yakalanır.

// vite.config.ts
build: {
  rollupOptions: {
    output: {
      manualChunks: {
        'vendor-react': ['react', 'react-dom'],
        'vendor-router': ['react-router-dom'],
      },
    },
  },
  chunkSizeWarningLimit: 200, // warn at 200KB
},

Hızlı Kontrol

Çok sayıda sayfası olan React SPA'ları için en etkili kod bölme stratejisi nedir?

Özet

Paketleri rollup-plugin-visualizer veya @next/bundle-analyzer ile analiz edin. Rota tabanlı ve bileşen düzeyindeki lazy() bölmelerini kullanın. Yalnızca kullandıklarınızı içe aktararak kullanılmayan kodları ayıklayın. CI'da boyut bütçeleri belirleyin ve olası sonraki rota için önceden getirme/önceden yükleme ipuçlarını kullanın.

Başlamak ücretsiz

Yapay zeka eğitmeniyle React öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
88
Dersler
324

Sıkça Sorulan Sorular

“Paket Analizi ve Kod Bölme Stratejisi” dersi ücretsiz mi?

Evet — “Paket Analizi ve Kod Bölme Stratejisi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.

“Paket Analizi ve Kod Bölme Stratejisi” dersinde ne öğreneceğim?

Paket boyutunu rollup-plugin-visualizer ile analiz edin ve rotaya göre bir kod bölme stratejisi belirleyin. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

React Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Paket Analizi ve Kod Bölme Stratejisi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu React Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. React Uygulamalarında Temel Web Ölçümlerini Ölçme
  2. Paket Analizi ve Kod Bölme Stratejisi
  3. React'te Görüntü ve Yazı Tipi Optimizasyonu
  4. INP'yi Azaltma: Olay İşleyicisi Optimizasyonu
← React Academy Sayfasına Dön