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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python9 224
  • Облачные технологии4 076
  • QA вакансии1 588
  • Android1 322
  • Инженер данных805
  • Продакт-менеджер368

Разработка

  • Backend вакансии1 317
  • iOS1 239
  • AI вакансии608
  • Fullstack вакансии523
  • Frontend вакансии456
  • Mobile вакансии28

По стеку

  • Go5 445
  • Java3 175
  • Kotlin1 119
  • Node.js1 026
  • Rust949
  • .NET666
  • PHP311
  • C#210
  • C++204

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

  • DevOps вакансии2 713
  • Kubernetes2 308
  • Linux-инфраструктура1 890
  • Terraform / IaC1 406
  • CI/CD842
  • Мониторинг и Observability645
  • SRE226
  • Кибербезопасность84

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

  • Аналитик данных483
  • Data Scientist469
  • Бизнес-аналитик349
  • Системный аналитик48

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

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

По регионам

  • Вакансии в США24 791
  • Вакансии в Европе9 439
  • Работа в России2 924
  • Вакансии в Канаде2 178

По формату

  • Удалённые вакансии43 505
  • Релокация в США24 791
  • Гибридная работа3 370
  • Офисная работа2 525

По уровню

  • Senior вакансии20 898
  • Middle вакансии12 438
  • Junior вакансии3 864

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

Все компании
  • Wise191 вакансия
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Celonis48 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

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

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

В чём разница между NavigationManager.NavigateTo() и компонентом <NavLink>?

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

NavLink — декларативный компонент-ссылка с автоматической подсветкой активного маршрута для меню. NavigationManager.NavigateTo() — программная навигация из C#-кода, нужна после async-операций, редиректов и условных переходов.

NavLink — декларативная навигация в разметке

NavLink — это компонент Blazor, который рендерится как тег <a>, но дополнительно автоматически добавляет CSS-класс active, если текущий URL совпадает с атрибутом href. Это удобно для навигационных меню.

<nav>
    <NavLink href="/" Match="NavLinkMatch.All">Home</NavLink>
    <NavLink href="/jobs" Match="NavLinkMatch.Prefix">Jobs</NavLink>
    <NavLink href="/profile">Profile</NavLink>
</nav>

Параметр Match:

  • NavLinkMatch.Prefix (по умолчанию) — активен при любом URL, начинающемся с href.
  • NavLinkMatch.All — активен только при точном совпадении. Обязательно для href="/", иначе «Home» будет всегда активен.

NavigationManager.NavigateTo() и компонент NavLink

Оба инструмента обеспечивают навигацию в Blazor, но решают разные задачи и используются в разных контекстах.

NavigationManager.NavigateTo() — императивная навигация в коде

NavigationManager — сервис, доступный через DI. Используется когда переход нужно выполнить программно: после отправки формы, по результату async-операции, при ошибке авторизации и т.д.

@inject NavigationManager Nav

private async Task HandleSubmit()
{
    var result = await ApiService.SaveAsync(model);
    if (result.Success)
    {
        // Обычная клиентская навигация
        Nav.NavigateTo($"/jobs/{result.Id}");
    }
}

// Принудительная перезагрузка страницы с сервера
Nav.NavigateTo("/maintenance", forceLoad: true);

// Замена текущей записи в истории (не добавляет новую запись)
Nav.NavigateTo("/profile", replace: true);

Другие возможности NavigationManager

// Текущий абсолютный URL
string currentUrl = Nav.Uri;

// Получить базовый путь приложения
string baseUri = Nav.BaseUri;

// Подписаться на смену URL (например, для аналитики)
Nav.LocationChanged += (sender, args) =>
{
    Console.WriteLine($"Navigated to: {args.Location}");
};

Когда что выбрать

  • Навигационное меню, хлебные крошки — NavLink.
  • Переход после действия пользователя (сохранение, логин, удаление) — NavigationManager.NavigateTo().
  • Редирект при ошибке авторизации в middleware — NavigationManager.NavigateTo().
  • Ссылка в тексте без подсветки активного состояния — обычный <a href="...">.

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

  • NavLinkMatch.Prefix на корне. <NavLink href="/"> без Match="NavLinkMatch.All" будет активен на всех страницах.
  • NavigateTo в OnInitializedAsync. Вызов навигации до завершения рендеринга может вызвать исключение в Blazor Server. Лучше делать в OnAfterRenderAsync или через Guard в компоненте.
  • forceLoad=true делает полный HTTP-запрос. Это полная перезагрузка страницы, теряется состояние SPA. Используйте только когда действительно нужен reload.
  • replace=true и история браузера. Заменяет текущую запись в history — кнопка «назад» пропустит текущую страницу. Используйте осознанно.
  • Относительные vs абсолютные пути. NavigateTo ожидает путь относительно base href. При вложенных развёртываниях (subfolder) лучше использовать Nav.BaseUri.
  • NavLink и fragment (#). NavLink не сравнивает anchor-часть URL при определении активного состояния.

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

  • Путать NavigationManager и NavLink как программная и декларативная навигация с похожим механизмом из другой версии или платформы.
  • Игнорировать runtime-границы Blazor: lifecycle, DI scope, SQL translation, UI thread или platform API.
  • Не обсуждать null/empty/error cases и поведение под нагрузкой.

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

  • Кандидат объясняет NavigationManager и NavLink как программная и декларативная навигация на конкретном примере, а не только определением.
  • Указывает последствия для производительности, тестируемости и поддержки.
  • Различает документированное поведение текущего стека и устаревшие практики.

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

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

Источники

  • https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/routing

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

Blazorimplementationruntime-reasoning

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

  • В чём разница между Blazor Server и Blazor WebAssembly?
  • Что такое Blazor и каковы его основные модели хостинга?
  • Как Blazor управляет повторным рендерингом компонентов и как его оптимизировать?
  • В каких типах frontend-проектов Blazor даёт реальный выигрыш, а где будет избыточен или неудачен?