intermediate
Code splitting
Делите JavaScript по route, component или capability, управляя cache behavior, риском waterfall и UX.
Code splitting уменьшает начальный JavaScript, вынося менее срочный код в chunks по маршруту, компоненту, возможности или взаимодействию. Лучше всего, когда границы chunks следуют пользовательским сценариям и переиспользованию кэша. Переразбиение даёт waterfalls запросов, дубли зависимостей и задержку interactions.
const AdminPanel = lazy(() => import('./AdminPanel'));
// prefetch вероятного следующего маршрута при hover или idle
Общие vendor chunks улучшают cache hit; слишком мелкие chunks добавляют RTT. Ошибки загрузки chunk показывайте с retry.
На интервью: влияние splitting на TTI, кэш, prefetch и состояния loading/error.
Типовые ошибки: split компонента, нужного сразу, только добавляет overhead; сбои dynamic import без recovery.
Компромисс: удобство против контроля — выбирайте механизм под вашу связность и бюджет производительности.
Чеклист:
- Split по реальным сценариям.
- Избегайте цепочек chunk waterfalls.
- Prefetch следующих маршрутов.
- Показывайте и обрабатывайте ошибки chunk.