Skip to content
Русский
Назад в каталог

astro.build

200 OK

Как Astro преобразует контент в HTML и выборочно добавляет интерактивность

Developer ToolsTailwind CSS
Краткий ответ

Astro хорошо подходит для сайтов, ориентированных на контент, которые должны предоставлять полезный HTML до запуска JavaScript в браузере. Его отличительная особенность — выборочная гидратация: команды могут оставить большую часть страницы статической, активируя отдельные компоненты, хотя приложения с высокой интерактивностью могут получить меньше пользы от такого разделения.

Последняя проверка:

Основные понятия

  • Доставка прежде всего в HTML: Astro рендерит содержимое страницы в HTML и по умолчанию не отправляет клиентский JavaScript.

  • Выборочная гидратация: Только компоненты, явно помеченные для гидратации в браузере, получают JavaScript, необходимый для взаимодействия.

  • Независимые острова: Интерактивные компоненты гидратируются отдельно и могут использовать приоритеты загрузки, соответствующие моменту, когда они нужны посетителям.

  • Несколько UI-подходов: Astro поддерживает React, Preact, Svelte, Vue, Solid, HTMX, веб-компоненты и другие подходы.

  • Типизированные коллекции контента: Коллекции контента организуют и проверяют содержимое Markdown с типобезопасностью TypeScript.

  • Соответствие контентным проектам: Astro наиболее непосредственно соответствует сайтам, где основными действиями пользователей являются чтение контента и навигация по нему.

Compare the subject with other published sites in the same category.

All alternatives

Как Astro преобразует контент в HTML и выборочно добавляет интерактивность

Что такое Astro?

Astro — это веб-фреймворк с открытым исходным кодом для создания сайтов, ориентированных на контент. Он рендерит содержимое страницы в HTML и по умолчанию не отправляет клиентский JavaScript, при этом позволяя разработчикам добавлять независимо гидратируемые компоненты там, где необходимо взаимодействие в браузере.

Такой подход подходит для блогов, документации, маркетинговых сайтов, портфолио, посадочных страниц, сайтов сообществ и контентно-ориентированных решений для электронной коммерции. Astro может использовать несколько знакомых UI-фреймворков, не требуя превращать всю страницу в приложение с клиентским рендерингом.

Краткое резюме

  • Основное назначение: Создание сайтов, ориентированных на контент, на основе HTML с серверным рендерингом.
  • Стоимость для браузера по умолчанию: Клиентский JavaScript отсутствует, если проект не добавляет его явно.
  • Основная архитектура: Интерактивные компоненты становятся изолированными островами внутри в остальном статических страниц.
  • Поддерживаемые UI-подходы: React, Preact, Svelte, Vue, Solid, HTMX, веб-компоненты и другие.
  • Инструменты для контента: Коллекции контента организуют и проверяют Markdown с типобезопасностью TypeScript.
  • Оптимальный сценарий: Сайты, где чтение контента и навигация по нему важнее непрерывного состояния на стороне браузера.
  • Главный компромисс: Команды должны решать, каким компонентам нужен JavaScript и когда он должен загружаться.

Какую проблему пытается решить Astro?

Сайты с контентом часто используют frontend-архитектуры, ориентированные на приложения, даже если их страницы в основном содержат заголовки, статьи, описания продуктов, изображения и ссылки. Из-за этого JavaScript может отправляться для обширного дерева компонентов, хотя большая часть страницы не требует выполнения кода в браузере.

Astro исходит из серверно-ориентированного принципа: контент преобразуется в HTML, а выполнение кода в браузере добавляется только там, где этого требует взаимодействие. Поэтому модель доставки может соответствовать фактическому поведению страницы, а не рассматривать каждый элемент как часть единого интерактивного приложения.

Официальная документация описывает Astro как фреймворк, ориентированный на контент и сервер, быстрый по умолчанию, простой в использовании и созданный с учетом потребностей разработчиков. Это проектные цели, а не гарантии, поскольку изображения, сторонние скрипты, код компонентов и особенности реализации по-прежнему влияют на готовый сайт.

Что Astro организует в контентном проекте

  • Страницы, основная ценность которых заключается в доступном для чтения HTML.
  • Переиспользуемые макеты и компоненты вокруг этого контента.
  • Контент Markdown, организованный с помощью коллекций.
  • Валидацию и схемы с поддержкой TypeScript для записей коллекций.
  • Необязательные интерактивные компоненты с использованием поддерживаемых UI-фреймворков.
  • Интеграции, добавляемые в соответствии с потребностями контента и доставки.

Как Astro рендерит страницу?

Astro отделяет статический контент страницы от интерактивных браузерных компонентов. Сервер формирует HTML, а компоненты, помеченные для гидратации, получают JavaScript и становятся интерактивными в соответствии с директивой, выбранной разработчиком.

Это отличается как от превращения всей страницы в единое дерево клиентских компонентов, так и от публикации полностью статического документа, в который нельзя добавить поведение в браузере. Astro занимает промежуточное положение, назначая интерактивность конкретным частям страницы.

Сравнение архитектуры и рендеринга

Область страницы или подход Начальный результат JavaScript в браузере Граница интерактивности Практическое следствие
Статический контент Astro HTML с серверным рендерингом По умолчанию отсутствует Нет гидратированного компонента Текст, ссылки и другой статический контент остаются полезными без среды выполнения компонентов.
Интерактивный остров Astro HTML и явно гидратируемый компонент Загружается для этого компонента Отдельный остров Меню или элемент поиска может стать интерактивным без гидратации окружающей статьи.
Несколько островов Astro HTML и отдельно гидратируемые компоненты Загружается в соответствии с потребностями каждого острова Каждый остров гидратируется независимо Команды могут отдавать приоритет важным взаимодействиям и откладывать компоненты, которые нужны не сразу.
Клиентское приложение на всю страницу Специальная оболочка приложения или HTML Обычно поддерживает обширное дерево клиентских компонентов Значительная часть страницы использует выполнение кода на стороне браузера Это может подходить для непрерывного взаимодействия, но способно применять модель приложения к контенту, которому она не нужна.

Эти границы не гарантируют конкретный результат производительности. Большой остров по-прежнему может отправлять значительный объем кода, а тяжелые медиафайлы и посторонние скрипты могут замедлять страницу; Astro предоставляет исходную конфигурацию с небольшим объемом JavaScript, но ответственность за итоговое качество работы остается на команде.

Что такое остров Astro?

Остров — это интерактивный UI-компонент внутри в остальном статической страницы. Окружающие заголовки, абзацы, ссылки и другие неинтерактивные материалы остаются HTML, а остров получает браузерный код, необходимый для его работы.

Острова гидратируются независимо, поэтому активация одного компонента не требует одновременной активации всех остальных интерактивных компонентов. Поддерживаемые фреймворки компонентов могут сосуществовать, хотя использование нескольких фреймворков способно увеличить дублирование среды выполнения и требования к сопровождению.

Когда может гидратироваться остров?

  • client:load: Отдает компоненту приоритет при загрузке страницы.
  • client:idle: Откладывает гидратацию до появления у браузера свободного времени.
  • client:visible: Ожидает, пока компонент приблизится к области просмотра.

Эти директивы делают приоритет загрузки частью размещения компонента. Элемент управления, необходимый немедленно, можно обрабатывать иначе, чем интерактивный элемент ниже по странице, а выбор должен определяться потребностями пользователя, а не универсальным правилом.

Что острова обеспечивают, а чего не гарантируют

Острова помогают команде делать следующее Острова не гарантируют следующее
Сохранять статический контент в виде HTML Каждая готовая страница будет быстрой
Добавлять JavaScript только в выбранные компоненты Гидратированные компоненты будут небольшими
Назначать о…3500 tokens truncated…льным потребностям проекта в контенте, взаимодействии и сопровождении.

Как появился Astro и как он управляется?

Astro был публично представлен в июне 2021 года в официальной публикации, авторами которой были Fred Schott и Nate Moore. Источник указывает обоих как авторов, представивших проект, и не дает оснований называть кого-либо из них единственным основателем.

В официальном объявлении об управлении за 2025 год был представлен Технический руководящий комитет Astro. На дату наблюдения в нем Matt Kane был указан как руководитель команды фреймворка, а Sarah Rainsberger — как руководитель команды документации; эти факты привязаны к дате, поскольку руководство и состав комитета могут меняться.

Факты о проекте и сообществе

  • Июнь 2021 года: Fred Schott и Nate Moore подготовили официальную презентацию Astro.
  • 2025 год: Astro объявил о своем Техническом руководящем комитете и указал роли в командах на соответствующую дату.
  • Лицензия: В поддерживаемом репозитории фреймворка Astro указан как бесплатное программное обеспечение с открытым исходным кодом под лицензией MIT.
  • Поддержка: Актуальные официальные материалы о выпуске направляют за помощью и обратной связью в сообщество Astro в Discord.
  • Участие: Проект направляет участников и желающих внести вклад на GitHub.
  • Начало работы: В поддерживаемом README рекомендуется npm create astro@latest; для ручной установки используется npm install astro.

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

Что представляет собой astro.build?

astro.build — это официальный сайт Astro, тогда как предметом этого описания является сам фреймворк Astro. В поддерживаемом репозитории сайта указано, что сайт создан с помощью Astro, что делает его уместным примером из первоисточника, не превращая подробности его сопровождения в часть определения фреймворка.

Поддерживаемый репозиторий фреймворка является более надежным источником информации о поддерживаемых пакетах, способах установки, лицензировании, сообществе и участии в проекте. Документация Astro остается основным источником сведений о его серверно-ориентированной модели, направленности на контент, островной архитектуре и директивах гидратации.

Итог

Предложение Astro понятно: рендерить контент в HTML, а затем добавлять браузерный JavaScript только к компонентам, которым требуется взаимодействие. Он привлекателен для сайтов, ориентированных на контент, с разделяемыми интерактивными областями и менее очевиден для продуктов, интерфейсы которых зависят от непрерывного клиентского состояния.

Не следует считать, что настройки по умолчанию делают быстрой каждую реализацию. Создайте реалистичную страницу, изучите ее HTML и гидратированные компоненты, протестируйте процесс работы с контентом и убедитесь, что границы островов остаются понятными по мере роста проекта.

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

Основные источники

  1. 01Официальный сайт Astro (откроется в новой вкладке)
  2. 02Документация Astro: Почему Astro? (откроется в новой вкладке)
  3. 03Документация Astro: Островная архитектура (откроется в новой вкладке)
  4. 04README поддерживаемого репозитория фреймворка Astro (откроется в новой вкладке)
  5. 05Поддерживаемый репозиторий фреймворка Astro (откроется в новой вкладке)
  6. 06Официальный репозиторий сайта astro.build (откроется в новой вкладке)
  7. 07Представляем Astro (откроется в новой вкладке)
  8. 08Объявление о Техническом руководящем комитете Astro на 2025 год (откроется в новой вкладке)
  9. 09Официальные материалы о выпуске Astro 7 (откроется в новой вкладке)

Частые вопросы

Практические ответы о продукте и принципах его работы.

Для чего используется Astro?

Astro — это веб-фреймворк для сайтов, ориентированных на контент, таких как блоги, документация, маркетинговые сайты, портфолио, посадочные страницы, сайты сообществ и решения для электронной коммерции. Он делает акцент на HTML с серверным рендерингом и добавляет клиентский JavaScript только там, где компоненты явно гидратируются.

Отправляет ли Astro JavaScript на каждую страницу?

Нет. По умолчанию Astro не отправляет клиентский JavaScript. Проект по-прежнему может добавлять скрипты и интерактивные компоненты, поэтому итоговый объем зависит от того, какие компоненты гидратируются и какой еще браузерный код включен в проект.

Что такое остров в Astro и когда он должен гидратироваться?

Остров — это независимо гидратируемый интерактивный компонент внутри в остальном статической страницы. Astro предоставляет `client:load` для приоритетной загрузки, `client:idle` для отложенной работы и `client:visible` для компонентов, которые могут ждать, пока приблизятся к области просмотра.

Можно ли использовать в Astro компоненты React, Vue или Svelte?

Да. Astro поддерживает React, Preact, Svelte, Vue, Solid, HTMX, веб-компоненты и другие UI-подходы. Командам следует использовать интеграции осознанно, поскольку объединение фреймворков может добавить код среды выполнения и работу по сопровождению.

Что такое коллекции контента Astro?

Коллекции контента организуют и проверяют Markdown и связанный контент с типобезопасностью TypeScript. Они полезны, когда проекту нужна единообразная структура для публикации, выполнения запросов и рендеринга групп контента.

Подходит ли Astro для высокоинтерактивного веб-приложения?

Это зависит от того, можно ли разделить интерфейс на значимые независимые острова. Если почти каждой области требуется гидратация, общее клиентское состояние и непрерывные обновления в браузере, архитектура, в большей степени ориентированная на приложения, может лучше соответствовать преобладающей модели взаимодействия.

Кто представил Astro и где пользователи могут участвовать в проекте?

Fred Schott и Nate Moore подготовили официальную публичную презентацию Astro в июне 2021 года; источник не дает оснований называть кого-либо единственным основателем. Официальные материалы направляют пользователей в Discord за помощью и обратной связью, а на GitHub — для участия и внесения вклада.

Continue exploring

More published records in Developer Tools.

View all alternatives

Gatsby связывает сайты на React со структурированным контентом и гибким рендерингом

Developer ToolsGoogle Analytics

Next.js добавляет в React маршрутизацию, рендеринг и серверные возможности

Developer ToolsGoogle AnalyticsNext.js

nuxt.com

200 OK

Создавайте сайты и приложения на Vue с маршрутизацией, серверной логикой и гибким рендерингом

Developer ToolsNuxtVercel