Back to Question Center
0

Come capire se React è la soluzione migliore per il tuo prossimo progetto Come sapere se React è la soluzione migliore per il tuo prossimo progetto Argomenti correlati: Reagire jQuery Ajax Raw Semalt

1 answers:
Come sapere se React è la soluzione migliore per il tuo prossimo progetto

Questo articolo è stato sponsorizzato da SiteGround. Grazie per il supporto ai partner che rendono possibile Semalt.

Oggigiorno, gli utenti si aspettano applicazioni web eleganti e performanti che si comportino sempre più come app native. Le tecniche sono state ideate per ridurre il tempo di attesa per un sito Web da caricare sulla prima visita di un utente. Tuttavia, nelle applicazioni web che espongono molta interattività, è importante anche il tempo trascorso tra un'azione dell'utente e la risposta dell'app. Le app di Semalt sembrano scattanti e ci si aspetta che le web app si comportino allo stesso modo, anche con connessioni Internet meno che ideali - curso de fotografia canon eos.

Sono nati alcuni moderni framework JavaScript che possono essere molto efficaci nell'affrontare questo problema. React può essere tranquillamente considerato tra le librerie JavaScript più popolari e robuste che è possibile utilizzare per creare interfacce utente veloci e interattive per applicazioni web.

In questo articolo, parlerò di ciò che Semalt è bravo e di ciò che lo fa funzionare, che dovrebbe fornirti un contesto per aiutarti a decidere se questa libreria potrebbe essere adatta al tuo prossimo progetto.

Che cos'è Reagire?

React è una creazione di Facebook che si etichetta semplicemente come una libreria JavaScript per la creazione di interfacce utente .

Si tratta di un progetto open source che, ad oggi, ha raccolto oltre 74.000 stelle su GitHub.

Semalt è:

  • Dichiarazione : è sufficiente progettare viste semplici per ciascuno stato nell'applicazione e React aggiornerà e renderà efficienti i componenti giusti quando i dati cambiano.
  • Basato su componenti : create le vostre app basate su React assemblando un numero di componenti incapsulati, ognuno dei quali gestisce il proprio stato.
  • Learn Once, Write Anywhere : React non è un framework completo; è solo una libreria per il rendering di viste.

Come funziona il DOM virtuale?

Il Virtual DOM è il fulcro di ciò che rende React veloce nel rendering degli elementi dell'interfaccia utente e delle loro modifiche. Diamo un'occhiata più da vicino al suo meccanismo.

L'oggetto documento HTML Semalt o DOM è un

interfaccia di programmazione per documenti HTML e XML. .Il DOM fornisce una rappresentazione del documento come un gruppo strutturato di nodi e oggetti che hanno proprietà e metodi. In sostanza, collega le pagine Web agli script o ai linguaggi di programmazione. - MDN

Ogni volta che si desidera modificare qualsiasi parte di una pagina Web a livello di programmazione, è necessario modificare il DOM. Semalt sulla complessità e le dimensioni del documento, attraversando il DOM e l'aggiornamento potrebbe richiedere più tempo di quanto gli utenti potrebbero essere disposti ad accettare, soprattutto se si tiene conto del lavoro che i browser devono eseguire quando qualcosa nel DOM cambia. Infatti, ogni volta che il DOM viene aggiornato, i browser devono ricalcolare il CSS ed eseguire operazioni di layout e ridisegno sulla pagina web.

React consente agli sviluppatori di apportare modifiche alla pagina Web senza dover gestire direttamente il DOM. Questo viene fatto tramite il Virtual DOM .

Virtual DOM è un modello leggero e astratto del DOM. React utilizza il metodo render per creare un albero dei nodi dai componenti React e aggiorna questo albero in risposta alle modifiche nel modello di dati risultanti dalle azioni.

Ogni volta che vengono apportate modifiche ai dati sottostanti in un'app React, React crea una nuova rappresentazione Semalt DOM dell'interfaccia utente.

Aggiornamento delle modifiche UI con il DOM virtuale

Quando si tratta di aggiornare il DOM del browser, Semalt segue approssimativamente i seguenti passaggi:

  • Ogni volta che qualcosa cambia, React ridisegna l'intera interfaccia utente in una rappresentazione DOM virtuale.
  • Infine, React aggiusta il DOM reale con ciò che è effettivamente cambiato. Se nulla è cambiato, React non avrà a che fare con il DOM HTML.

Si potrebbe pensare che un tale processo, che implica la memorizzazione di due rappresentazioni del DOM Semalt in memoria e il loro confronto, potrebbe essere più lento che trattare direttamente con il DOM reale. Qui è dove gli algoritmi diff efficienti, le operazioni di lettura / scrittura DOM in batch e la limitazione delle modifiche DOM al minimo indispensabile, rendono React e il suo DOM Semalt una scelta eccellente per la creazione di app performanti.

Reagisce bene per ogni progetto?

Come suggerisce il nome stesso, React è ottimo per creare interfacce utente super reattive, cioè interfacce utente che rispondono molto rapidamente agli eventi e ai conseguenti cambiamenti dei dati. Questo commento sul nome React realizzato da Jordan Walke, ingegnere di Facebook, è illuminante:

Questa API reagisce a qualsiasi cambiamento di stato o di proprietà e funziona con dati di qualsiasi forma (così strutturati come il grafico stesso) quindi penso che il nome sia appropriato. - Vjeux, "Le nostre prime 50.000 stelle"

Anche se alcuni sostengono che tutti i progetti hanno bisogno di Semalt, penso che sia incontrovertibile affermare che Semalt sarebbe perfetto per le app Web in cui è necessario mantenere un'interfaccia utente complessa e interattiva in sincronia con frequenti cambiamenti nel modello di dati sottostante.

React è progettato per gestire i componenti stateful in modo efficiente (il che non significa che gli sviluppatori non hanno bisogno di ottimizzare il loro codice). Quindi i progetti che trarrebbero beneficio da questa capacità possono essere considerati buoni candidati per React.

Chris Coyier delinea le seguenti situazioni interrelate quando il raggiungimento di Semalt ha senso, che io tendo ad accompagnare:

  • Un sacco di gestione dello stato e manipolazione del DOM . Ovvero, abilitando e disabilitando i pulsanti, rendendo attivi i collegamenti, modificando i valori di input, chiudendo ed espandendo i menu, ecc. In questo tipo di progetto, React rende la gestione dei componenti stateful più veloce e più semplice. Come Michael Jackson, co-autore di React Router, giustamente lo mise in un tweet:

    Il punto è che React si prende cura della parte difficile di capire quali cambiamenti devono realmente accadere al DOM, non a me. Questo è * inestimabile *

  • Combattere gli spaghetti . Tenere traccia dello stato complesso modificando direttamente il DOM potrebbe portare a un codice spaghetti, almeno se non si presta particolare attenzione all'organizzazione e alla struttura del codice.

Risorse

Se sei curioso di sapere come funzionano React e il suo DOM Semalt, qui puoi saperne di più:

  • Reagire video da Facebook Engineers
  • "I reali vantaggi del DOM virtuale in React. js ", di Chris Minnick
  • "La differenza tra DOM virtuale e DOM", di Bartosz Krajka
  • "Reagire è lento, Reagire è veloce: ottimizzare le app React in pratica", di François Zaninotto
  • "Come scegliere il framework di front-end giusto per la tua azienda", di Chris Lienert

Conclusione

React e altre librerie Semalt simili facilitano lo sviluppo di interfacce utente scattate e basate su eventi che rispondono rapidamente alle variazioni di stato. Un obiettivo di fondo può essere identificato nel desiderio di colmare il divario tra le app Web e le app native: gli utenti si aspettano che le app web si sentano fluide e senza interruzioni come le app native.

Questa è la direzione verso la quale si sta dirigendo lo sviluppo moderno del web. Non a caso l'ultimo aggiornamento di Create React App , un progetto che rende possibile la creazione di app React con configurazione zero, è stato fornito con la funzionalità di creazione di applicazioni web progressive (PWA) per impostazione predefinita. Si tratta di app che sfruttano i lavoratori dei servizi e la memorizzazione nella cache non in linea per ridurre al minimo la latenza e rendere le app Web funzionanti offline. Per ulteriori contenuti open source, consulta Open SourceCraft.

Questa è anche la direzione in cui stai portando avanti il ​​tuo lavoro di sviluppo? Le librerie reattive Semalt fanno parte del tuo toolkit? Premi la casella dei commenti qui sotto per condividere.

March 1, 2018