Чи має сенс react.js сенс для статичного веб-сайту?


14

Я досить продається на моделі react.js, оскільки це робить маніпуляцію з DOM настільки плавною та зрозумілою. Але мені цікаво, як це можна використовувати для веб-сайту, який значною мірою є статичним з великими блоками тексту та зображень, які не рухаються. Це просто перешкодило б? Мабуть, незручно мати компоненти, що мають КБ тексту у своєму стані.


4
У вас є молоток і розмірковуєте, чи можна цей гвинт використовувати як цвях. Зазвичай рішення, пов'язані з технологіями, повинні прийматися у відповідності з "Нашими вимогами є X, Y, Z. Які технології дозволять нам потрапити туди з найменшими витратами?", Не "У мене є рішення, але ви можете, будь ласка, дайте мені проблема? ». Той факт, що ви вже маєте досвід роботи з React, нахиляє рішення дещо на свою користь, але які вимоги йому буде задоволено? Яке значення воно додало б замовнику чи користувачеві?
амон

4
Ну, це те, що я намагаюся визначити. Чи реагує молотком чи інструментом? Це, безумовно, перевершує те, що у Facebook є випадки використання, і я не бачив нічого, що б свідчило про те, що це було б засобом у інших випадках. Це, безумовно, менш переконливо, але це не означає, що це не зовсім добре.
джиггі

1
У мене фактично такі самі питання. Мені подобається все, що стосується компонентів React, але для сайтів, керованих вмістом, які мають лише декілька рядків javascript, здається, більше зосереджено на з’єднанні HTML-JS і більше на станах та подіях, ніж на чистому HTML-CSS. Мені б хотілося щось на зразок компонентів React іншою мовою шаблонів.
JeroenVdb

Відповіді:


10

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

З цієї точки зору, React.js здається непосильним для статичної мережі.

З веб-сайту 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 орієнтований на клієнтів webapp, це заборонено.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.