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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python17 129
  • Облачные технологии14 088
  • QA вакансии3 457
  • Backend вакансии2 115
  • Инженер данных1 805
  • Продакт-менеджер1 262

Разработка

  • Android1 865
  • iOS1 698
  • Fullstack вакансии989
  • AI вакансии949
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 660
  • Java6 550
  • Node.js2 020
  • .NET1 722
  • Kotlin1 619
  • Rust1 455
  • C#711
  • PHP683
  • C++572

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

  • Kubernetes7 769
  • DevOps вакансии6 056
  • Linux-инфраструктура5 493
  • Terraform / IaC4 266
  • CI/CD3 250
  • Мониторинг и Observability1 788
  • SRE567
  • Кибербезопасность453

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

  • Data Scientist1 141
  • Бизнес-аналитик927
  • Аналитик данных854
  • Системный аналитик153

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

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

По регионам

  • Вакансии в США44 281
  • Вакансии в Европе23 875
  • Вакансии в Канаде4 475
  • Работа в России3 922

По формату

  • Удалённые вакансии75 035
  • Релокация в США44 281
  • Гибридная работа12 401
  • Офисная работа7 079

По уровню

  • Senior вакансии42 679
  • Middle вакансии20 894
  • Junior вакансии6 722

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

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

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

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

Что такое client-директивы в Astro (client:load, client:idle, client:visible, client:only)? В чём их различие?

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

Client-директивы управляют моментом гидратации компонента: load — сразу, idle — в простое браузера, visible — при попадании в viewport, only — только на клиенте без SSR.

client:load

Загружает и гидратирует компонент сразу при загрузке страницы. Это самый очевидный вариант, но и самый «дорогой» — JavaScript загружается немедленно, до того как пользователь вообще прокрутил страницу или нажал что-либо.

---
import Counter from '../components/Counter.jsx';
---
<Counter client:load />

Используйте для компонентов, которые должны быть интерактивны сразу: формы выше сгиба, главное меню с дропдаунами.

Client-директивы в Astro: управление гидратацией

По умолчанию Astro рендерит все компоненты на сервере и отправляет в браузер чистый HTML без JavaScript. Чтобы сделать UI-компонент (React, Vue, Svelte и т.д.) интерактивным на клиенте, нужно явно указать одну из client-директив. Без директивы компонент рендерится один раз на сервере и остаётся статичным.

client:idle

Откладывает загрузку до момента, когда браузер перейдёт в состояние покоя — технически реализуется через requestIdleCallback (с fallback на setTimeout). Подходит для менее приоритетных виджетов: чаты поддержки, аналитические кнопки, счётчики просмотров.

---
import ChatWidget from '../components/ChatWidget.jsx';
---
<ChatWidget client:idle />

client:visible

Гидратирует компонент только когда он попадает в область видимости (viewport). Внутри используется IntersectionObserver. Идеален для длинных страниц, где блоки внизу могут вообще не увидеть большинство пользователей.

---
import Testimonials from '../components/Testimonials.jsx';
---
<!-- Гидратация произойдёт только при скролле до блока -->
<Testimonials client:visible />

Можно передать порог видимости через объект: client:visible={{ rootMargin: "200px" }} — это инициирует загрузку за 200px до появления элемента.

client:only

Полностью пропускает серверный рендеринг — компонент существует только на клиенте. Необходимо явно указать фреймворк строкой. Применяется когда компонент использует browser-only API (window, localStorage, WebGL) или сторонние библиотеки, которые не поддерживают SSR.

---
import MapComponent from '../components/Map.jsx';
---
<!-- Фреймворк указывается явно, SSR полностью отключён -->
<MapComponent client:only="react" />

client:media

Гидратирует компонент только если совпадает CSS media query. Удобно для мобильных меню, которые не нужны на десктопе.

<MobileMenu client:media="(max-width: 768px)" />

Сравнительная таблица

  • client:load — немедленно при загрузке страницы; наивысший приоритет
  • client:idle — когда браузер не занят (requestIdleCallback)
  • client:visible — когда элемент попадает в viewport (IntersectionObserver)
  • client:only="framework" — только на клиенте, серверный рендеринг полностью отключён
  • client:media — только при совпадении media query

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

  • client:only без указания фреймворка вызовет ошибку сборки — строка вроде "react" обязательна.
  • client:load для всего уничтожает преимущество Astro — вы получаете SPA без его удобств. Директиву стоит использовать осознанно.
  • client:visible и rootMargin: по умолчанию threshold равен 0, компонент загрузится только когда хотя бы 1 пиксель попадёт в viewport. На медленных соединениях это может привести к заметной задержке гидратации.
  • Отсутствие SSR при client:only: поисковые роботы не увидят контент такого компонента. Не используйте для SEO-критичного текста.
  • Вложенные компоненты: если родительский Astro-компонент имеет client:load, дочерние framework-компоненты гидратируются автоматически в рамках своего фреймворка — дополнительные директивы на дочерних не нужны.
  • requestIdleCallback отсутствует в Safari до версии 16.4. Astro использует fallback, но это означает что client:idle в старых Safari ведёт себя как client:load.
  • Несколько фреймворков на одной странице: каждый бандл загружается отдельно. Смешивание React и Vue увеличивает общий размер JS.
  • Props при client:only: props сериализуются в HTML-атрибут и отправляются на клиент — не передавайте чувствительные данные.

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

  • Ставить client:load без необходимости и платить трафиком.
  • Использовать client:only для компонентов, которые могли бы серверно отрендериться.
  • Передавать в пропсы функции или объекты с методами — они теряются при сериализации.

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

  • Различает все пять директив и приводит сценарии для каждой.
  • Понимает, что props сериализуются в JSON.
  • Видит влияние директив на TTI и SEO.

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

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

Источники

  • https://docs.astro.build/en/reference/directives-reference/#client-directives
  • https://docs.astro.build/en/guides/framework-components/#hydrating-interactive-components
←Предыдущий вопросВ каких типах frontend-проектов Astro даёт реальный выигрыш, а где будет избыточен или неудачен?Следующий вопрос→Как работают CSS и стилизация в Astro? Что такое скоупинг `<style>` и как писать глобальные стили?

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

Astrohydration-strategyintersection-observerperformance-tuning

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

  • В чём разница между статическим режимом вывода (static output mode) и SSR (server) режимом в Astro?
  • Что такое Astro и какую проблему он решает? В чём его основная философия?
  • Что такое Islands Architecture? Как Astro её реализует?
  • Как Astro работает с контентом? Что такое Content Collections API?