Analisis Himpunan & Strategi Pemisahan Kod
Analisis saiz himpunan dengan rollup-plugin-visualizer dan tetapkan strategi pemisahan kod mengikut laluan.
Analisis Himpunan & Strategi Pemisahan Kod ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Mengapa Saiz Bundel Penting
Bundel JavaScript yang besar melambatkan Masa untuk Interaktif. Setiap KB JS perlu dimuat turun, dihuraikan dan dilaksanakan sebelum halaman menjadi interaktif — terutamanya pada rangkaian mudah alih yang perlahan.
Menganalisis dengan rollup-plugin-visualizer
Dalam projek Vite, gunakan pemalam visualisasi untuk menjana peta pokok bundel anda yang menunjukkan modul yang menggunakan ruang paling banyak.
// 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 treemapPenganalisis Bundel Next.js
Gunakan @next/bundle-analyzer untuk menganalisis bundel pelayan dan klien dalam Next.js.
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 buildPembahagian Kod Mengikut Laluan
Pembahagian yang paling berkesan ialah memuatkan kod setiap laluan hanya apabila pengguna menavigasinya. React Router dengan lazy() dan Next.js App Router melakukan perkara ini secara automatik.
// 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>Pembahagian Kod pada Tahap Komponen
Tangguhkan pemuatan komponen berat seperti peta, carta dan penyunting sehingga diperlukan dengan menggunakan lazy().
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>}
</>
);
}Import Dinamik untuk Ciri Bersyarat
Import pustaka besar hanya apabila sesuatu ciri diaktifkan supaya pustaka tersebut tidak dimuatkan untuk semua pengguna.
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');
}Pembuangan Kod Tidak Digunakan
Bundler moden membuang eksport yang tidak digunakan (kod mati). Pastikan kebergantungan anda menyokong ESM, bukan CJS, supaya pembuangan kod tidak digunakan berfungsi, dan elakkan mengimport seluruh pustaka apabila anda hanya menggunakan satu fungsi.
// 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';Pramuat chunk Kritikal
Gunakan <link rel='modulepreload'> atau komen khas Webpack untuk memuatkan chunk halaman seterusnya terlebih dahulu semasa pengguna berada pada halaman semasa.
// Webpack magic comment — preload on hover:
const Dashboard = lazy(() => import(/* webpackPrefetch: true */ './Dashboard'));
// or preload (higher priority):
const Dashboard = lazy(() => import(/* webpackPreload: true */ './Dashboard'));Menganalisis Kesan Pihak Ketiga
Gunakan bundlephobia.com atau sambungan Import Cost untuk VS Code bagi melihat saiz gzip mana-mana pakej npm sebelum memasangnya.
Menetapkan Belanjawan Bundel
Tetapkan had saiz bagi setiap laluan dalam konfigurasi Webpack atau Vite. Binaan akan gagal jika chunk melebihi belanjawan, sekali gus mengesan kemerosotan saiz yang tidak disengajakan dalam CI.
// vite.config.ts
build: {
rollupOptions: {
output: {
manualChunks: {
'vendor-react': ['react', 'react-dom'],
'vendor-router': ['react-router-dom'],
},
},
},
chunkSizeWarningLimit: 200, // warn at 200KB
},Semakan Pantas
Apakah strategi pembahagian kod yang paling berkesan untuk SPA React yang mempunyai banyak halaman?
Ringkasan
Analisis bundel dengan rollup-plugin-visualizer atau @next/bundle-analyzer. Gunakan pembahagian mengikut laluan dan tahap komponen dengan lazy(). Laksanakan pembuangan kod tidak digunakan dengan mengimport hanya perkara yang anda gunakan. Tetapkan belanjawan saiz dalam CI dan gunakan petunjuk prambil atau pramuat untuk laluan seterusnya yang berkemungkinan.
Pelajari React dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 88
- Pelajaran
- 324
Soalan Lazim
Adakah pelajaran “Analisis Himpunan & Strategi Pemisahan Kod” percuma?
Ya — teks penuh “Analisis Himpunan & Strategi Pemisahan Kod” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Analisis Himpunan & Strategi Pemisahan Kod”?
Analisis saiz himpunan dengan rollup-plugin-visualizer dan tetapkan strategi pemisahan kod mengikut laluan. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan React Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Analisis Himpunan & Strategi Pemisahan Kod” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mengukur Web Vitals Teras dalam Aplikasi React
- Analisis Himpunan & Strategi Pemisahan Kod
- Pengoptimuman Imej & Fon dalam React
- Mengurangkan INP: Pengoptimuman Pengendali Peristiwa