Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+687новых вакансий за сутки·55 254вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 791
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python7 042
  • Облачные технологии5 085
  • QA вакансии1 814
  • Android1 199
  • Инженер данных831
  • Продакт-менеджер339

Разработка

  • iOS1 135
  • Backend вакансии1 131
  • Fullstack вакансии475
  • AI вакансии458
  • Frontend вакансии404
  • Mobile вакансии27

По стеку

  • Go4 093
  • Java2 435
  • Kotlin990
  • Node.js827
  • Rust665
  • .NET525
  • PHP282
  • C++223
  • C#199

DevOps и инфраструктура

  • Kubernetes2 931
  • Linux-инфраструктура2 312
  • DevOps вакансии2 110
  • Terraform / IaC1 714
  • CI/CD872
  • Мониторинг и Observability825
  • SRE253
  • Кибербезопасность50

Аналитика и данные

  • Аналитик данных497
  • Data Scientist463
  • Бизнес-аналитик374
  • Системный аналитик54

Другие направления

  • Проджект-менеджер119
  • UI/UX дизайн72
  • Ручное тестирование14

По регионам

  • Вакансии в США25 531
  • Вакансии в Европе9 792
  • Работа в России3 193
  • Вакансии в Канаде2 236

По формату

  • Удалённые вакансии43 578
  • Релокация в США25 531
  • Гибридная работа4 289
  • Офисная работа3 340

По уровню

  • Senior вакансии21 650
  • Middle вакансии12 211
  • Junior вакансии3 886

Сейчас нанимают

Все компании
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Wise125 вакансий
  • Celonis28 вакансий
  • Infobip28 вакансий
  • Spotify24 вакансии
  • Adyen17 вакансий
  • Darktrace17 вакансий
  • Monzo13 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме NuxtВсе вопросы
NuxtMiddleТеория

Как Nuxt управляет code splitting и lazy loading компонентов?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Nuxt автоматически делит бандл по маршрутам (pages/), а компоненты можно загружать лениво через префикс Lazy или defineAsyncComponent. Анализ чанков — npx nuxi analyze.

Lazy-компоненты через префикс Lazy

Любой компонент из components/ можно загрузить лениво, добавив префикс Lazy к имени тега:

// components/HeavyChart.vue — существует в проекте

// pages/dashboard.vue
<template>
  <div>
    <!-- Компонент загрузится только при монтировании -->
    <LazyHeavyChart v-if="showChart" :data="chartData" />
    <button @click="showChart = true">Показать график</button>
  </div>
</template>

<script setup lang="ts">
const showChart = ref(false)
const chartData = ref([])
</script>

Code Splitting и Lazy Loading в Nuxt

Nuxt использует Vite (или webpack) в качестве бандлера и автоматически разбивает приложение на чанки. Каждый маршрут получает свой отдельный чанк, который загружается только при переходе пользователя на соответствующую страницу.

Автоматический code splitting по маршрутам

Все файлы в директории pages/ автоматически становятся отдельными чанками. Nuxt не требует явной конфигурации — разбивка по маршрутам включена по умолчанию.

defineAsyncComponent для ручного контроля

// Явный lazy import с fallback и обработкой ошибок
const HeavyComponent = defineAsyncComponent({
  loader: () => import('~/components/HeavyChart.vue'),
  loadingComponent: LoadingSpinner,
  errorComponent: ErrorFallback,
  delay: 200,       // ms перед показом loadingComponent
  timeout: 5000,    // ms до показа errorComponent
})

Экспериментальный Payload Extraction

В Nuxt 3.x доступен флаг payloadExtraction, который выносит данные страниц в отдельные JSON-файлы при статической генерации:

// nuxt.config.ts
export default defineNuxtConfig({
  experimental: {
    payloadExtraction: true,
  },
})

Анализ бандла

# Запустить анализатор размера чанков
npx nuxi analyze

Команда открывает визуальный отчёт (rollup-plugin-visualizer), где видно, какие модули попали в какой чанк и почему.

Prefetch и Preload

Nuxt автоматически добавляет <link rel="prefetch"> для маршрутов, видимых в viewport через <NuxtLink>. Можно управлять этим поведением:

// nuxt.config.ts
export default defineNuxtConfig({
  router: {
    options: {
      linkActiveClass: 'active',
    },
  },
  experimental: {
    crossOriginPrefetch: true,
  },
})

Подводные камни

  • Префикс Lazy создаёт отдельный чанк только если компонент не используется нигде в eager-режиме — если тот же компонент импортирован без Lazy в другом месте, чанк всё равно будет в основном бандле.
  • Слишком мелкая нарезка: сотни крохотных чанков по 1–2 KB хуже одного чанка из-за накладных расходов HTTP/1.1; с HTTP/2 граница сдвигается, но всё равно важно не дробить без смысла.
  • Hydration mismatch при использовании LazyComponent с SSR: если компонент рендерится на сервере, добавьте <ClientOnly> или используйте v-if с правильной логикой.
  • defineAsyncComponent и авто-импорт несовместимы: нельзя написать const C = defineAsyncComponent(...) и ожидать, что Nuxt подхватит его как авто-импорт.
  • Динамические импорты с переменными (import(`./${name}.vue`)) создают wildcard-чанки и ломают tree-shaking — всегда используйте статические строки.
  • При ssr: false весь SPA грузится одним entry-point — code splitting по маршрутам всё равно работает, но первый бандл больше из-за отсутствия серверного рендеринга.
  • Vite chunking strategy по умолчанию может объединять модули неожиданным образом; для контроля нужен build.rollupOptions.output.manualChunks в nuxt.config.

Частые вопросы на собеседовании

  • В чём разница между composable'ами useAsyncData и useFetch?
  • Что такое useState() в Nuxt и чем он отличается от Vue ref()?
  • Что такое серверный движок Nitro в Nuxt 3 и что он обеспечивает?
  • Что такое Nuxt и какие проблемы он решает по сравнению с обычным Vue.js-приложением?

Типичные ошибки

  • Путать code splitting and lazy loading с похожим API из соседнего фреймворка.
  • Не объяснять, где код выполняется: сервер, клиент, build step или runtime.
  • Игнорировать влияние на hydration, cache, bundle size или безопасность.

Что проверяет интервьюер

  • Точно объясняет назначение механизма «code splitting and lazy loading».
  • Показывает корректный минимальный пример без выдуманных API.
  • Называет ограничения, failure modes и production-компромиссы.

Как вы знаете этот вопрос?

Проверить себя по теме Nuxt →

Источники

  • https://nuxt.com/docs/3.x/guide/directory-structure/components
  • https://nuxt.com/docs/3.x/guide/concepts/rendering
←Предыдущий вопросКакие архитектурные решения Nuxt навязывает вокруг rendering, state, routing, styling, data loading или deployment?Следующий вопрос→Что такое layouts в Nuxt и как их использовать?

Связанные темы

Nuxtbundle-analysisperformance-debugging