Влияет ли response.js для статического сайта, управляемого содержимым?

14

Я довольно продал модель реагирования, потому что она делает манипуляции с DOM такими плавными и понятными. Но мне интересно, как это можно использовать для сайта, который в основном статичен с большими блоками текста и изображений, которые не двигаются. Будет ли это просто мешать? Кажется неловким иметь компоненты с КБ текста в их состоянии.

Jiggy
источник
4
У вас есть молоток, и вы думаете, можно ли использовать этот винт в качестве гвоздя? Как правило, решения, связанные с технологиями, должны приниматься по принципу «Наши требования - X, Y, Z. Какие технологии позволят нам достичь этого с наименьшими затратами?», А не «У меня есть решение, но не могли бы вы дать у меня проблема? ». Тот факт, что у вас уже есть опыт работы с React, несколько отклоняет решение в его пользу, но какие требования будут ему удовлетворены? Какую ценность это добавит к клиенту или пользователю?
Амон
4
Ну, это то, что я пытаюсь определить. React - это молоток или ящик для инструментов? Это, безусловно, превосходит в тех случаях использования, которые есть у Facebook, и я не видел ничего, что указывало бы на то, что это будет плохо в других случаях. Это определенно менее убедительно, но это не значит, что это не совсем хорошо.
jiggy
1
У меня на самом деле есть тот же вопрос (ы). Мне нравится все о компонентах React, но для сайтов, управляемых контентом, с несколькими строчками javascript, он, кажется, сильно сосредоточен на соединении HTML-JS и больше на состояниях и событиях, чем на чистом HTML-CSS. Я хотел бы что-то вроде компонентов React на другом языке шаблонов.
JeroenVdb

Ответы:

10

Знайте, что вы хотите сделать, затем выберите технологию.

С этой точки зрения React.js кажется излишним для в основном статичной сети.

С сайта React:

Мы создали React для решения одной проблемы: создания больших приложений с данными, которые со временем меняются.

React - это молоток для конкретного ногтя. Это будет означать, что это будет мешать созданию в основном статического сайта.

Миямото Акира
источник
2

Генерация статических страниц является ожидаемым использованием React, как указано в документации для React.renderToStaticMarkup

Аналогично renderToString, за исключением того, что это не создает дополнительных атрибутов DOM, таких как data-react-id, которые React использует внутри. Это полезно, если вы хотите использовать React в качестве простого статического генератора страниц, так как удаление дополнительных атрибутов может сэкономить много байтов.

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

Однако могут возникнуть проблемы, если вы хотите выполнить асинхронный код. Давайте представим следующее:

function SchoolClass({classId}) {
   const students = await query("SELECT name FROM student WHERE class = ?", classId);
   return <ul>
      {_.map(students, ({name}) => <li>{name}</li>}
   </ul>
}

Но это не сработает, потому что функция возвращает Promise, а не элемент React, и поэтому не совместима с React. Если бы вы разрабатывали фреймворк статического генератора сайтов в стиле React, вы бы, вероятно, допустили это. Однако, поскольку React ориентирован на клиентов веб-приложений, это запрещено.

Уинстон Эверт
источник