Добавление динамического контента о себе
Теперь, когда у вас есть многостраничный сайт с HTML-контентом, давайте добавим немного динамического HTML!
Приготовьтесь к...
- Определить заголовок вашей страницы в Frontmatter и использовать его в вашем HTML.
- Условно отобразить HTML-элементы.
- Добавить немного контента обо мне.
Любой HTML-файл допустим на языке Astro. Но вы можете делать больше, чем просто HTML с Astro!
Определите и использовать переменную
Откройте about.astro
, который должен выглядеть так:
-
Добавьте следующую строку JavaScript в скрипт frontmatter, между разделителями кода (
---
): -
Замените статический заголовок «Astro» и заголовок «Обо мне» на вашем HTML на динамическую переменную
{pageTitle}
. -
Обновите живой просмотр вашей страницы
/about
.Текст вашей страницы должен выглядеть так же, и заголовок вашей страницы, отображаемый во вкладке вашего браузера, теперь должен читаться «Обо мне», а не «Astro».
Вместо того, чтобы вводить текст непосредственно в теги HTML, вы только что определили, а затем использовали переменную в двух разделах вашего
.astro
-файла соответственно. -
Используйте тот же шаблон для создания значения pageTitle для использования в
index.astro
(«Главная страница») иblog.astro
(«Мой блог об изучении Astro»). Обновите HTML этих страниц в обоих местах, чтобы ваш заголовок страницы соответствовал заголовку, отображаемому на каждой странице.
- Определите переменные в своем скрипте Astro с помощью выражений JavaScript или TypeScript.
- Используйте эти переменные в вашем шаблоне Astro внутри фигурных скобок , чтобы сообщить Astro, что вы используете некоторый JavaScript.
Напишите выражения JavaScript в Astro
-
Добавьте следующий JavaScript в свой frontmatter, между разделителем кода:
(Вы можете настроить код под себя, но в этом руководстве будет использоваться следующий пример.)
-
Затем добавьте следующий код в ваш HTML-шаблон, ниже вашего существующего контента:
- Написание шаблона Astro напоминает написание HTML, но вы можете использовать в нем выражения JavaScript.
- Скрипт frontmatter Astro содержит только JavaScript.
- Вы можете использовать все современные логические операторы, выражения и функции JavaScript в любой секции вашего
.astro
-файла. Но фигурные скобки необходимы (только) в теле шаблона HTML.
Проверьте свои знания
-
Frontmatter файла
.astro
написан на: -
Кроме HTML, синтаксис Astro позволяет включать:
-
Когда вам нужно писать свои скрипты на JavaScript в фигурных скобках?
Условный рендер элементов
Вы также можете использовать свои скрипты для выбора того, нужно ли выводить отдельные элементы в <body>
вашего HTML-контента.
-
Добавьте следующие строки в свой скрипт Frontmatter, чтобы определить переменные:
-
Добавьте следующие строки ниже ваших существующих абзацев
Тогда проверьте живой просмотр на вкладке вашего браузера, чтобы увидеть, что отображается на странице:
-
Фиксируйте изменения на GitHub, прежде чем перейти к следующему шагу. Делайте это в любое время, когда вы хотите сохранить свою работу и обновить ваш сайт.
Синтаксис шаблона Astro похож на синтаксис JSX. Если вы когда-нибудь задаетесь вопросом, как использовать свой скрипт в вашем HTML, то поиск способа сделать это в JSX, вероятно, хорошая отправная точка!
Анализ шаблона
Предположим, дан следующий скрипт .astro
:
Для каждого выражения шаблона Astro, ты можешь предсказать HTML (если он есть!), который будет отправлен в браузер? Щелкни, чтобы узнать, прав ли ты!
-
<p>{operatingSystem}</p>
-
{student && <p>Я до сих пор учусь в школе</p>}
-
<p>У меня есть {quantity + 8} пар {footwear}</p>
-
{operatingSystem === "MacOS" ? <p>Я использую Mac.</p> : <p>Я не использую Mac.</p>}