Новое: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 источников: карьерные страницы компаний и джоб-борды.

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

Что такое layouts в Astro и как они используются со свойством layout во frontmatter?

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

Layout в Astro — компонент с <slot />, который оборачивает контент страниц; в .md/.mdx файлах он указывается через свойство layout во frontmatter, и тогда всё содержимое Markdown подставляется в слот.

Создание layout-компонента

---
// src/layouts/BaseLayout.astro
const { title, description = 'Мой сайт' } = Astro.props;
---

<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width" />
    <meta name="description" content={description} />
    <title>{title}</title>
  </head>
  <body>
    <nav>...</nav>
    <main>
      <slot />  <!-- Сюда подставляется контент страницы -->
    </main>
    <footer>...</footer>
  </body>
</html>

Layouts в Astro

Layout в Astro — это обычный .astro-компонент, который оборачивает контент страниц. Он содержит повторяющиеся элементы: <html>, <head>, навигацию, футер. Дочерний контент вставляется через компонент <slot />.

Использование layout в .astro-странице

---
// src/pages/about.astro
import BaseLayout from '../layouts/BaseLayout.astro';
---

<BaseLayout title="О нас" description="Страница о компании">
  <h1>О нас</h1>
  <p>Добро пожаловать!</p>
</BaseLayout>

Использование layout в Markdown через frontmatter

В .md и .mdx файлах layout указывается в свойстве layout во frontmatter. Astro автоматически оборачивает содержимое файла в указанный компонент.

---
# src/content/blog/my-post.md
layout: ../../layouts/BlogPostLayout.astro
title: Мой первый пост
date: 2024-01-15
author: Иван Иванов
---

# Заголовок поста

Текст статьи в формате Markdown.

Layout для Markdown получает все frontmatter-данные через Astro.props.frontmatter:

---
// src/layouts/BlogPostLayout.astro
const { frontmatter } = Astro.props;
// frontmatter.title, frontmatter.date, frontmatter.author
---

<html lang="ru">
  <head>
    <title>{frontmatter.title}</title>
  </head>
  <body>
    <article>
      <h1>{frontmatter.title}</h1>
      <time>{frontmatter.date}</time>
      <slot />  <!-- Отрендеренный Markdown попадёт сюда -->
    </article>
  </body>
</html>

Именованные слоты

Layout может содержать несколько именованных слотов:

---
// src/layouts/TwoColumn.astro
---
<div class="layout">
  <aside><slot name="sidebar" /></aside>
  <main><slot /><!-- default slot --></main>
</div>
---
// src/pages/dashboard.astro
import TwoColumn from '../layouts/TwoColumn.astro';
---

<TwoColumn>
  <nav slot="sidebar">Навигация</nav>
  <h1>Главный контент</h1>
</TwoColumn>

Вложенные layouts

Layouts можно вкладывать: BlogLayout использует BaseLayout внутри себя, создавая иерархию шаблонов.

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

  • frontmatter.layout — строка-путь, не импорт — в Markdown нужно указывать относительный путь к файлу, а не имя компонента; неверный путь приведёт к ошибке сборки.
  • Astro.props.frontmatter только в Markdown-layouts — в обычных страницах frontmatter в props не приходит; данные передаются явно через атрибуты.
  • Дублирование тега html — если layout уже содержит <html>, а страница тоже добавляет его через другой layout, получится невалидный HTML.
  • Слот по умолчанию без имени — содержимое без slot="name" попадает в <slot /> без атрибута; если его нет в layout, контент будет проигнорирован.
  • Styles в layout применяются глобально — <style> внутри layout без is:global всё равно scoped; для глобальных стилей нужен <style is:global>.
  • MDX и layout — в .mdx файлах можно также экспортировать export const layout вместо frontmatter, но два подхода одновременно конфликтуют.

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

  • Ждать, что layout во frontmatter сработает для Content Collections.
  • Не использовать именованные слоты и копировать одинаковую структуру.
  • Тащить бизнес-логику в layout, делая его непредсказуемым.

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

  • Знает, что layout это обычный .astro со <slot />.
  • Различает применение в .astro и в Markdown frontmatter.
  • Понимает ограничения для Content Collections.

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

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

Источники

  • https://docs.astro.build/en/basics/layouts/
  • https://docs.astro.build/en/guides/markdown-content/#frontmatter-layout-property

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

Astrocomponent-compositionlayout-designtemplating

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

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