2015-02-10 19 views
40

Sono nuovo nell'utilizzo di React per lo sviluppo.Vantaggi e svantaggi dell'utilizzo di ReactJS

Qualcuno può elencare i vantaggi e gli svantaggi nell'utilizzo di ReactJS. Ci sono problemi di prestazioni con l'utilizzo di questa libreria per progetti di grandi dimensioni.

risposta

38

I vantaggi di utilizzare Reagire:

  • facile sapere come un componente è reso, basta guardare la funzione di rendering.
  • JSX semplifica la lettura del codice dei componenti. È anche molto facile vedere il layout o come i componenti sono collegati/combinati tra loro.
  • è possibile eseguire il rendering React sul lato server.
  • è facile da testare e puoi anche integrare alcuni strumenti come il jest.
  • garantisce la leggibilità e facilita la manutenzione.
  • è possibile utilizzare React con qualsiasi framework (Backbone.js, Angular.js) in quanto è solo un livello di vista.

Cosa non va meglio di React?

  • è solo un livello di vista, devi ancora collegare il tuo codice per richieste Ajax, eventi e così via. Alcune persone si sorprendono di questo.
  • la libreria stessa è piuttosto grande.
  • la curva di apprendimento può essere ripida.

Se reagire-nativo è davvero come è stato descritto, la reazione diventerà ancora più grande.

Per quanto riguarda le prestazioni, è davvero buono in quanto si basa su una virtual-dom per sapere cosa sta realmente cambiando nell'interfaccia utente e verrà ricreato solo ciò che è realmente cambiato. Ha problemi con elenchi di bambini molto grandi, leggermente mutevoli (2000 <li> test), ma può essere semplicemente ottimizzato.

Se non sei sicuro, pensa ai grandi progetti utilizzando React: instagram, hipchat, chat di Facebook e così via.

Alcune risorse:

e probabilmente uno dei miei post sul blog preferito Why React is awesome?

+1

voglio aggiungere alcuni commenti alla tua risposta come Credo che sia prudente sottolineare. Prima di tutto, React non è arrivato con Jest, Jest può essere usato per testare i componenti React ma non è necessario. In secondo luogo, React non ha mai avuto l'intenzione di essere nient'altro che il livello di vista che non dovrebbe essere tenuto contro di esso. React promuove la componibilità e non il lock-yourself-in-a-quadro-abilità. –

+1

Hai ragione, ero di fretta quando ho scritto la mia prima risposta. Ho modificato la risposta per aggiungere i tuoi punti. Continuo a pensare che "è un livello di vista" dovrebbe essere nella parte cons che molte persone ne sono sorprese. –

+0

Ho aggiunto una nota su qualcosa che emerge spesso dalle prestazioni. Differenti elenchi di bambini in cui le modifiche sono poche o inesistenti possono causare molti cicli di CPU sprecati. La gente sembra aspettarsi che questo sia solo veloce, perché "reagisci è veloce". – FakeRainBrigand