Dovrei imparare React o AngularJS?
La risposta alla domanda "Dovrei imparare il framework X o la libreria Y" è confrontare le mele con le arance. React è più nuovo di Angular e molto meno maturo, quindi penso che ci siano alcune idee sbagliate su ciò che React effettivamente fa, rispetto ad Angular. Lasciatemi chiarire:
Angular è un framework JavaScript front-end per costruire applicazioni web all'avanguardia e compatibili con i browser. Essendo un framework, ciò che fa è fornire la struttura e l'impalcatura per costruire applicazioni in un certo modo (il modo "Angular"). Un'importante implicazione di questo è che se volete costruire qualcosa con Angular, dovete farlo nel modo in cui loro intendono farlo, o vi state preparando per del codice piuttosto hacky. Quindi, Angular cerca di darvi tutto ciò di cui avete bisogno, ma così facendo vi limita a queste cose.
React è una libreria JavaScript, il che significa che si tratta solo di alcuni strumenti JavaScript per aiutarvi a sviluppare un aspetto specifico di un'applicazione web. Qual è questo aspetto? Flussi di dati coerenti e unidirezionali verso le viste dell'applicazione. Il sito di React vi dirà che sono la V di MVC (Model-View-Controller). Risolvono un problema specifico per voi, e non si preoccupano di come scegliete di strutturare il resto della vostra applicazione client. Puoi mescolare e abbinare in qualsiasi misura tu voglia, e React (per la maggior parte) rimarrà fuori dai piedi. Quindi, React ti dà una cosa, e ti lascia prendere le decisioni su come costruire il resto della tua applicazione. Ovviamente, però, con una maggiore libertà arriva una maggiore responsabilità.
In sintesi di quanto sopra, Angular e React risolvono problemi diversi. Fare domande di tipo "uno o l'altro" su di loro è come chiedere se si dovrebbe imparare a fare il bucato o imparare a pulire una casa. Angular vi dirà come pulire la casa nel modo in cui ad Angular piace farlo, e React vi dirà come fare il bucato nel modo in cui a React piace fare il bucato, senza preoccuparsi di come potreste fare i piatti, spazzare il pavimento, pulire i tavoli, ecc.
Imparate entrambi. Confrontateli e vedete quali sono i loro punti di forza e di debolezza, e poi scegliete quello giusto per il lavoro giusto.