Code Splitting и entry points
Общие правила
MUST
- Разделение по маршрутам — обязательное.
- Код, не влияющий на первый экран, грузится асинхронно.
- Критический UI не зависит от асинхронных чанков.
FORBIDDEN
- Загружать весь код приложения в стартовый бандл.
- Держать бизнес-логику в entry points.
Entry points и универсальный код
MUST
- Entry points используются только для:
- инициализации
- композиции
- dependency injection
SHOULD
- Общий код минимален и не содержит бизнес-логики.
Next.js (Pages Router)
Пример: динамический импорт компонента
import dynamic from 'next/dynamic';
const HeavyChart = dynamic(() => import('../components/heavy-chart'), {
loading: () => <ChartSkeleton />,
ssr: false
});
export default function AnalyticsPage() {
return <HeavyChart />;
}