Теперь, когда у вас есть несколько блогов для ссылок, давайте настроим страницу блога для автоматического создания списка из них!
Приготовьтесь к...
Получить доступ к данным из всех ваших записей сразу, используя Astro.glob()
Отобразить динамически генерируемый список записей на странице вашего блога
Рефакторинг с использованием компонента <BlogPost /> для каждого элемента списка
Динамическое отображение списка сообщений
Добавьте следующий код в blog.astro для возврата информации обо всех ваших файлах Markdown. Astro.glob() вернет массив объектов, один для каждого поста блога.
Чтобы генерировать весь список сообщений динамически, используя заголовки и URL-ы сообщений, замените свои отдельные теги <li> следующим кодом Astro:
Теперь весь ваш список блогов генерируется динамически, путем отображение массива, возвращаемого Astro.glob().
Добавьте новую запись в блог, создав новый файл post-4.md в src/pages/posts/ и добавив немного контента Markdown. Обязательно включите по крайней мере свойства frontmatter, использованные ниже.
Посетите страницу вашего блога в предварительном просмотре браузера по адресу http://localhost:4321/blog и поищите обновленный список из четырех элементов, включая ваш новый блог-пост!
Задача: Создать компонент BlogPost
Попробуйте самостоятельно внести все необходимые изменения в проект Astro, чтобы вы могли использовать следующий код для генерации списка блог-постов:
Развернуть, чтобы увидеть шаги
Создайте новый компонент в src/components/.
Показать имя файла
Напишите строку кода в вашем компоненте, чтобы он мог принимать title и url в качестве Astro.props.
Показать код
Добавьте шаблонизацию, используемую для создания каждого элемента в списке вашего блога.
Показать код
Импортируйте новый компонент на вашу страницу блога.
Показать код
Проверьте себя: посмотрите окончательный код компонента.
Показать код
Проверьте свои знания
Если ваш компонент Astro содержит следующую строку кода:
Выберите синтаксис, который вы могли бы написать для представления:
Заголовка вашего третьего блог-поста.
Ссылки на URL вашего первого блог-поста.
Компонент для каждого поста, отображающий дату его последнего обновления.