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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python17 126
  • Облачные технологии14 083
  • QA вакансии3 456
  • Backend вакансии2 115
  • Инженер данных1 809
  • Продакт-менеджер1 261

Разработка

  • Android1 862
  • iOS1 700
  • Fullstack вакансии986
  • AI вакансии950
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 688
  • Java6 537
  • Node.js2 026
  • .NET1 722
  • Kotlin1 611
  • Rust1 458
  • C#710
  • PHP682
  • C++571

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

  • Kubernetes7 772
  • DevOps вакансии6 054
  • Linux-инфраструктура5 493
  • Terraform / IaC4 275
  • CI/CD3 239
  • Мониторинг и Observability1 790
  • SRE568
  • Кибербезопасность458

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

  • Data Scientist1 143
  • Бизнес-аналитик923
  • Аналитик данных857
  • Системный аналитик152

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

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

По регионам

  • Вакансии в США44 276
  • Вакансии в Европе23 819
  • Вакансии в Канаде4 471
  • Работа в России3 904

По формату

  • Удалённые вакансии74 928
  • Релокация в США44 273
  • Гибридная работа12 388
  • Офисная работа7 083

По уровню

  • Senior вакансии42 625
  • Middle вакансии20 854
  • Junior вакансии6 721

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

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

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

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

Что такое useRuntimeConfig() и как он используется на сервере и на клиенте?

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

useRuntimeConfig() возвращает объект с переменными окружения. Серверная часть (секреты) доступна только на сервере, публичная часть (runtimeConfig.public) — и на сервере, и на клиенте. Значения переопределяются через env-переменные NUXT_* без пересборки.

Определение конфигурации

// nuxt.config.ts
export default defineNuxtConfig({
  runtimeConfig: {
    // Только серверная часть (НИКОГДА не попадает в клиентский JS)
    databaseUrl: process.env.DATABASE_URL ?? 'postgres://localhost/mydb',
    jwtSecret: process.env.JWT_SECRET ?? 'fallback-secret',
    stripeSecretKey: '',  // Пустая строка — обязательный env

    // Публичная часть — доступна везде
    public: {
      apiBase: process.env.NUXT_PUBLIC_API_BASE ?? '/api',
      appName: 'MyApp',
      analyticsId: '',
    },
  },
});

Что такое useRuntimeConfig

useRuntimeConfig() — composable Nuxt, предоставляющий доступ к переменным из блока runtimeConfig в nuxt.config.ts. Главная особенность: переменные можно переопределить через переменные окружения без пересборки приложения.

Маппинг переменных окружения

Nuxt автоматически маппит env-переменные по правилу camelCase → SCREAMING_SNAKE_CASE с префиксом NUXT_:

  • jwtSecret → NUXT_JWT_SECRET
  • public.apiBase → NUXT_PUBLIC_API_BASE
  • stripeSecretKey → NUXT_STRIPE_SECRET_KEY

Использование на сервере

// server/api/auth/login.post.ts
export default defineEventHandler(async (event) => {
  const config = useRuntimeConfig(event);  // передаём event для server-контекста
  const body = await readBody(event);

  // Используем серверный секрет
  const token = signJWT(body.userId, config.jwtSecret);

  // Используем публичный параметр
  const baseUrl = config.public.apiBase;

  return { token, baseUrl };
});

Использование на клиенте

// components/ApiStatus.vue
<script setup lang="ts">
const config = useRuntimeConfig();
// config.public.apiBase — доступно
// config.jwtSecret — undefined (на клиенте серверные ключи скрыты)
console.log(config.public.apiBase);  // '/api'
</script>

Использование в серверных middleware

// server/middleware/auth.ts
export default defineEventHandler((event) => {
  const config = useRuntimeConfig(event);
  const token = getHeader(event, 'Authorization')?.replace('Bearer ', '');
  if (token) {
    event.context.user = verifyJWT(token, config.jwtSecret);
  }
});

Файл .env для разработки

# .env (в .gitignore!)
NUXT_JWT_SECRET=super-secret-dev
NUXT_STRIPE_SECRET_KEY=sk_test_xxx
NUXT_PUBLIC_API_BASE=http://localhost:3001/api

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

  • public.* в клиентском бандле: всё что в public уходит в JS-файл страницы. Никаких секретов — только публичные URL, feature flags, названия.
  • Нельзя добавлять ключи только через env: если ключа нет в nuxt.config.ts, NUXT_MY_VAR не будет доступен через useRuntimeConfig(). Нужно объявить его с пустым дефолтом.
  • useRuntimeConfig вне контекста Nuxt: вызов в обычном .ts-файле вне composable/plugin/server-route бросит ошибку. Передавайте конфиг как параметр.
  • process.env в nuxt.config: значения, заданные через process.env прямо в nuxt.config.ts, жёстко вшиваются в сборку. Для гибкого переопределения используйте пустую строку и env-маппинг.
  • Серверный useRuntimeConfig(event): в Nitro-хэндлерах рекомендуется передавать event для правильного контекста; вызов без аргумента тоже работает, но считается менее явным.

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

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

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

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

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

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

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

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

Источники

  • https://nuxt.com/docs/3.x/guide/going-further/runtime-config
←Предыдущий вопросЧто такое `nuxt.config.ts` и какие параметры конфигурации наиболее важны?Следующий вопрос→Проект на Nuxt вырос из небольшого интерфейса в большой продукт. Какие архитектурные проблемы вы ожидаете увидеть?

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

NuxtConfigurationssr-safety