Czy reakcja.js ma sens w przypadku statycznej witryny opartej na treści?

14

Jestem dość sprzedany na modelu respons.js, ponieważ sprawia, że ​​manipulowanie DOM jest tak płynne i zrozumiałe. Zastanawiam się jednak, jak można to wykorzystać w przypadku witryny w dużej mierze statycznej z dużymi blokami tekstu i nieruchomymi obrazami. Czy to by przeszkadzało? Wydaje się niewygodne mieć komponenty z KB tekstem w ich stanie.

nerwowy
źródło
4
Masz młotek i zastanawiasz się, czy ta śruba może być użyta jako gwóźdź. Zazwyczaj decyzje związane z technologią powinny być podejmowane w stylu „Nasze wymagania to X, Y, Z. Jakie technologie pozwolą nam się tam dostać przy najniższych kosztach?”, A nie „Mam rozwiązanie, ale czy mógłbyś podać problem? ”. Fakt, że masz już doświadczenie z Reactem, podważa nieco decyzję na jej korzyść, ale jakie wymagania byłyby przez nią spełnione? Jaką wartość dodałoby to do klienta lub użytkownika?
amon
4
Właśnie to próbuję ustalić. Czy React to młotek lub skrzynka narzędziowa? Z pewnością przoduje w tego rodzaju przypadkach użycia, które ma Facebook, i nie widziałem niczego, co wskazywałoby, że byłby do bani w innych przypadkach. Jest zdecydowanie mniej przekonujący, ale to nie znaczy, że nie jest w porządku.
jiggy
1
Właściwie mam te same pytania. Uwielbiam wszystko w komponentach React, ale dla stron opartych na treści z zaledwie kilkoma liniami javascript wydaje się, że jest on bardziej skoncentrowany na sprzężeniu HTML-JS i bardziej na stanach i zdarzeniach niż czysty HTML-CSS. Chciałbym coś w rodzaju komponentów React w innym języku szablonów.
JeroenVdb,

Odpowiedzi:

10

Dowiedz się, co chcesz zrobić, a następnie wybierz technologię.

Z tego punktu widzenia, React.js wydaje się przesadą w przypadku większości statycznej sieci.

Ze strony internetowej React:

Stworzyliśmy React, aby rozwiązać jeden problem: budowanie dużych aplikacji z danymi, które zmieniają się w czasie.

React to młotek do określonego gwoździa. Oznaczałoby to, że będzie to przeszkadzało w tworzeniu strony w większości statycznej.

Miyamoto Akira
źródło
2

Generowanie stron statycznych to przewidywane użycie React, jak wspomniano w dokumentacji dla React.renderToStaticMarkup

Podobnie jak renderToString, ale nie tworzy to dodatkowych atrybutów DOM, takich jak data-react-id, których React używa wewnętrznie. Jest to przydatne, jeśli chcesz użyć React jako prostego generatora stron statycznych, ponieważ usunięcie dodatkowych atrybutów może zaoszczędzić wiele bajtów.

Niektórzy zdecydowali się na użycie przesadnej reakcji. Kiedy jednak chcę czegoś martwego, nie mam problemu z nadmiernym zabijaniem. Fakt, że reagowanie może zrobić znacznie więcej niż jest to konieczne w tym przypadku użycia, nie jest argumentem przeciwko reakcji.

Mogą jednak wystąpić problemy, jeśli chcesz wykonać kod asynchroniczny. Wyobraźmy sobie:

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

Ale to nie zadziała, ponieważ funkcja zwraca obietnicę, a nie element React, a zatem nie jest kompatybilna z React. Jeśli planujesz platformę generatora statycznych witryn w stylu React, prawdopodobnie na to pozwolisz. Ponieważ jednak React koncentruje się na klientach aplikacji internetowych, nie jest to dozwolone.

Winston Ewert
źródło