Динамическое создание html-страниц

#javascript #html

Вопрос:

Я пытаюсь создать веб-сайт, у меня есть API, который извлекает список продуктов и выдает мне файл JSON, содержащий всю необходимую мне информацию. Чего я хотел добиться, так это создать отдельную страницу для каждого продукта — динамически (так как файл JSON будет меняться). Возможно ли это с помощью javascript/html?

Спасибо

Комментарии:

1. Это делается постоянно. Большинство веб-сайтов с динамикой работают таким образом в наши дни.

2. Вы, наверное, хотите посмотреть наверх slugs . Вот стартовая статья: itnext.io/whats-a-slug-f7e74b6c23e0

3. Лучше всего посмотреть на фреймворк, такой как Django, Laravel, Symfony.

Ответ №1:

Конечно. Именно так создаются все розничные сайты.

Я предлагаю вам начать изучать некоторые фреймворки javascript, такие как ReactJS или Angular. Короче говоря, после того, как JSON получен с сервера, он передается тому, что мы называем компонентом, в качестве реквизитов (свойств). Компонент содержит некоторый jsx или html, который формирует «скелет» пользовательского интерфейса. Объекты в JSON (я предполагаю, что каждый объект является продуктом) заполняют скелет.

Это пример очень, очень базовой структуры для одного продукта. Вы можете использовать for цикл или map метод для перебора JSON, чтобы отобразить сведения о каждом продукте в следующем формате:

В следующем фрагменте реквизит может выглядеть следующим образом {productImage:"imgur.com/blabal.png",productTitle:"Product X",price:3000}

 function product(props){

return(
<div className="product-container">
<img className="product-image" src={props.productImage}
<span className="product-title">{props.productTitle}</span>
<span className="product-price">{props.price}

lt;/span>
......
</div>
)
}

Каждый продукт будет иметь свой собственный объект со своим собственным productImage , productTitle и price среди прочего вы решите его добавить.

Таким образом, у вас будет 1000 продуктов (1000 предметов). Вы передадите продукты один за другим в приведенный выше фрагмент (в качестве реквизита), и в нем будут показаны все продукты. Вместо того, чтобы писать 1000 фрагментов для каждого продукта.

Очевидно, что я не могу научить вас реагировать на один ответ. Я настоятельно рекомендую вам изучить React. Вы можете найти множество учебных пособий на Youtube. То, что вы хотите сделать, очень просто.

Комментарии:

1. Большое вам спасибо, разберусь с реакцией. Извините, это, должно быть, глупый вопрос, но когда пользователь нажимает на продукт, будет ли реагировать создание новой HTML-страницы и сохранение ее на сервере? или как это работает.

2. «Скелет» будет размещен (сохранен) на сервере. Итак, всего один фрагмент кода. Информация о продукте заполняется на стороне пользователя (после того, как он запросит просмотр продукта). Ни в коем случае на хостинговом сервере не будет 1000 копий.

3. @Forged дайте мне знать, если вам нужно что-нибудь еще 🙂 если нет, я рекомендую вам принять ответ. Таким образом, другие люди также могут извлечь выгоду из ответа.

4. да, это был ответ, который я искал, просто принял извини!