После небольшого праздничного перерыва мы вернулись с новым релизом Astro! Astro 4.1 включает исправления и улучшения. После праздников релиз чуть меньше обычного, но мы рады вернуться к работе над Astro — в 2024 запланировано много интересного!
Основные новинки:
- Новые правила аудита доступности
- Новая опция конфигурации для
client:visible - Кастомное кодирование и декодирование cookies
Чтобы воспользоваться новинками, убедитесь, что у вас последняя версия Astro. Обновитесь до Astro 4.1 командой @astrojs/upgrade:
npx @astrojs/upgradeили командой вашего менеджера пакетов:
npm install astro@latestpnpm upgrade astro --latestyarn upgrade astro --latestNew accessibility audit rules
Добавлены два новых правила аудита для dev toolbar. Теперь предупреждения о:
- неподдерживаемых ARIA-атрибутах;
- отсутствующих атрибутах, необходимых для ARIA role.
Оба правила помогают убедиться, что элементы страницы имеют корректные и валидные ARIA roles.
Extended client:visible directive
Директива client:visible теперь принимает опцию rootMargin — отступ вокруг viewport для расчёта видимости. Компонент гидратируется, когда он близко к viewport, а не только при появлении в нём.
<!-- Load component when it's within 200px away from entering the viewport --><Component client:visible={{rootMargin: "200px"}} />Custom cookie encoding and decoding
Кодирование/декодирование cookies теперь настраивается через функции encode и decode при установке и получении cookies.
Например, можно обойти стандартное кодирование через encodeURIComponent, добавляя URL в cookie:
---import { encodeCookieValue } from './cookies';Astro.cookies.set('url', Astro.url.toString(), { // Override the default encoding so that URI components are not encoded encode: (value) => encodeCookieValue(value),});---Позже декодируйте URL тем же способом:
---import { decodeCookieValue } from './cookies';const url = Astro.cookies.get('url', { decode: (value) => decodeCookieValue(value),});---Bug Fixes
В релизе есть дополнительные исправления. Release notes.
