React.js ha senso per un sito statico basato sul contenuto?


14

Sono piuttosto venduto sul modello React.js perché rende la manipolazione del DOM così semplice e comprensibile. Ma mi chiedo come possa essere sfruttato per un sito in gran parte statico con grandi blocchi di testo e immagini che non si muovono. Si metterebbe di mezzo? Sembra strano avere componenti con KB di testo nel loro stato.


4
Hai un martello e stai valutando se questa vite potrebbe essere usata come un chiodo. Normalmente, le decisioni relative alla tecnologia dovrebbero essere prese sulla falsariga "I nostri requisiti sono X, Y, Z. Quali tecnologie ci consentiranno di arrivarci al minor costo?", Non "Ho la soluzione, ma potresti per favore dare un problema? ”. Il fatto che tu abbia già esperienza con React inclina la decisione in qualche modo a suo favore, ma quali requisiti ne sarebbero soddisfatti? Quale valore aggiungerebbe al cliente o all'utente?
am

4
Bene, questo è quello che sto cercando di determinare. React è un martello o una cassetta degli attrezzi? Certamente eccelle per il tipo di casi d'uso che Facebook ha e non ho visto nulla che indichi che farebbe schifo in altri casi. È sicuramente meno avvincente, ma ciò non significa che non sia perfettamente perfetto.
jiggy,

1
In realtà ho le stesse domande. Adoro tutto sui componenti di React ma per i siti basati sui contenuti con solo poche righe di javascript sembra molto focalizzato sull'accoppiamento HTML-JS e più su stati ed eventi che HTML-CSS pulito. Mi piacerebbe qualcosa come i componenti di React in un altro linguaggio esemplare.
JeroenVdb,

Risposte:


10

Scopri cosa vuoi fare, quindi scegli la tecnologia.

Da quel punto di vista, React.js sembra essere eccessivo per un web prevalentemente statico.

Dal sito web di React:

Abbiamo creato React per risolvere un problema: creare applicazioni di grandi dimensioni con dati che cambiano nel tempo.

React è un martello per un chiodo specifico. Ciò indicherebbe che ostacolerà la creazione di un sito Web prevalentemente statico.


2

La generazione di pagine statiche è un uso anticipato di React, come indicato nella documentazione di React.renderToStaticMarkup

Simile a renderToString, tranne questo non crea attributi DOM extra come data-react-id, che React utilizza internamente. Ciò è utile se si desidera utilizzare React come un semplice generatore di pagine statiche, poiché eliminando gli attributi aggiuntivi è possibile risparmiare molti byte.

Alcuni hanno definito l'uso eccessivo di reagire qui. Tuttavia, quando voglio qualcosa di morto, non ho alcun problema a sovraccaricarlo. Il fatto che la reazione possa fare molto di più di quanto sia necessario per questo caso d'uso non è un argomento contro la reazione.

Tuttavia, potrebbero verificarsi problemi se si desidera eseguire codice asincrono. Immaginiamo quanto segue:

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

Ma questo non funzionerà, perché la funzione restituisce una Promessa, non un elemento React, e quindi non è compatibile con React. Se stavi progettando un framework di generatori di siti statici in stile React, probabilmente lo permetteresti. Tuttavia, poiché React è focalizzato sui client webapp, non è permesso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.