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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python17 105
  • Облачные технологии14 068
  • QA вакансии3 460
  • Backend вакансии2 098
  • Инженер данных1 796
  • Продакт-менеджер1 248

Разработка

  • Android1 866
  • iOS1 699
  • Fullstack вакансии979
  • AI вакансии951
  • Frontend вакансии742
  • Mobile вакансии44

По стеку

  • Go8 651
  • Java6 544
  • Node.js2 018
  • .NET1 719
  • Kotlin1 623
  • Rust1 453
  • C#709
  • PHP683
  • C++571

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

  • Kubernetes7 761
  • DevOps вакансии6 057
  • Linux-инфраструктура5 492
  • Terraform / IaC4 259
  • CI/CD3 240
  • Мониторинг и Observability1 782
  • SRE565
  • Кибербезопасность450

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

  • Data Scientist1 127
  • Бизнес-аналитик925
  • Аналитик данных845
  • Системный аналитик154

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

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

По регионам

  • Вакансии в США43 686
  • Вакансии в Европе23 668
  • Вакансии в Канаде4 413
  • Работа в России3 909

По формату

  • Удалённые вакансии73 889
  • Релокация в США43 686
  • Гибридная работа12 392
  • Офисная работа7 088

По уровню

  • Senior вакансии42 236
  • Middle вакансии20 545
  • Junior вакансии6 653

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

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab138 вакансий
  • Celonis39 вакансий
  • Spotify36 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

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

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

Что такое компонент Teleport в Vue 3?

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

<Teleport> рендерит содержимое компонента в другом месте DOM (например, в <body>) при сохранении реактивного контекста текущего компонента. Используется для модалей, тостов, тултипов — элементов, которые должны выйти за пределы родительского z-index или overflow.

Синтаксис

<Teleport to="body">
  <div class="modal-overlay">
    <div class="modal">
      <slot />
    </div>
  </div>
</Teleport>

Атрибут to принимает CSS-селектор или ссылку на DOM-элемент. Vue монтирует содержимое внутрь найденного элемента.

Что такое Teleport

<Teleport> — встроенный компонент Vue 3, который «телепортирует» свой контент в любой DOM-узел за пределами текущего дерева компонентов. При этом реактивность, пропсы и эмиты работают как обычно — компонент логически остаётся в своём месте в дереве компонентов.

Практический пример: модальное окно

<!-- Modal.vue -->
<script setup>
const props = defineProps<{ modelValue: boolean; title: string }>()
const emit = defineEmits<{ (e: 'update:modelValue', v: boolean): void }>()
</script>

<template>
  <Teleport to="body">
    <Transition name="modal">
      <div
        v-if="modelValue"
        class="fixed inset-0 bg-black/50 flex items-center justify-center"
        @click.self="emit('update:modelValue', false)"
      >
        <div class="bg-white rounded-lg p-6 max-w-md w-full">
          <h2>{{ title }}</h2>
          <slot />
          <button @click="emit('update:modelValue', false)">Закрыть</button>
        </div>
      </div>
    </Transition>
  </Teleport>
</template>

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

<script setup>
import { ref } from 'vue'
import Modal from './Modal.vue'
const show = ref(false)
</script>

<template>
  <button @click="show = true">Открыть</button>
  <Modal v-model="show" title="Подтверждение">
    <p>Вы уверены?</p>
  </Modal>
</template>

Атрибут disabled

Телепортацию можно временно отключить, сохраняя компонент на месте:

<Teleport to="body" :disabled="isMobile">
  <Tooltip />
</Teleport>

Несколько Teleport в один контейнер

Vue поддерживает несколько <Teleport>, нацеленных на один DOM-узел. Они добавляются последовательно:

<!-- Первый toast -->
<Teleport to="#notifications"><Toast msg="Сохранено" /></Teleport>
<!-- Второй toast -->
<Teleport to="#notifications"><Toast msg="Ошибка" /></Teleport>

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

  • Целевой DOM-элемент (to) должен существовать в момент монтирования компонента. Если он создаётся динамически, телепортация тихо провалится или вызовет предупреждение.
  • Стили, применяемые через scoped-атрибут, не применяются к телепортированному контенту — он физически вне корневого элемента компонента. Используйте глобальные или :deep() стили.
  • SSR с Nuxt 3: серверный рендеринг не поддерживает телепортацию в произвольные узлы — только в body через специальный <ClientOnly> или встроенный механизм Nuxt.
  • Вложенные <Teleport> рендерятся отдельно — порядок z-index управляется CSS, а не деревом Vue.
  • При отладке в DevTools компонент отображается в дереве Vue на своём логическом месте, но в DOM — в целевом узле. Это может сбивать с толку при первичной отладке.
  • Анимации (<Transition>) внутри <Teleport> работают, но transition-group требует дополнительной настройки из-за иного DOM-контекста.

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

  • Как работает система реактивности Vue? Что изменилось между Vue 2 и Vue 3 (Proxy вместо Object.defineProperty)?
  • Что такое Pinia? Чем она отличается от Vuex и почему является рекомендованным менеджером состояния для Vue 3?
  • Что такое ref() и reactive() в Composition API? Когда использовать каждый?
  • В каких типах frontend-проектов Vue.js даёт реальный выигрыш, а где будет избыточен или неудачен?

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

  • Размещать целевой контейнер в <head> или вне корневого DOM.
  • Полагать, что <Teleport> решает доступность сам — нет, фокус и role нужно прописать руками.
  • Использовать <Teleport> для контента, который должен влиять на layout родителя — он его покидает.
  • Игнорировать SSR-нюансы и видеть гидрационные предупреждения.

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

  • Знает синтаксис <Teleport to>/disabled/defer.
  • Понимает, что логически компонент остаётся у родителя.
  • Видит проблемы accessibility/focus-trap.
  • Может объяснить SSR-нюансы.

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

Проверить себя по теме Vue.js →

Источники

  • https://vuejs.org/guide/built-ins/teleport.html
  • https://vuejs.org/api/built-in-components.html#teleport

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

Vue.jsAccessibilityui-patternsvue-fundamentals