Zelf heb ik een half jaar geleden kort gewerkt met React.js. De reden dat ik React.js toentertijd heb gebruikt is om het view gedeelte van de Angular.js framework te vervangen met een meer efficient HTML processor.
Tijdens het ontwikkelen heb ik gemerkt dat ik al gauw andere frameworks/oplossingen nodig heb om validatie, ajax post/get etc te doen.
En omdat ik meerdere frameworks nodig had heeft het ook langer geduurd om de frameworks te leren en ze met elkaar te laten communiceren.
Wat meerdere frameworks ook zal introduceren is dat je zelf een structuur moet gaan bedenken. Dus waar je wat gaat plaatsen.
- Snel en performant
- Je schrijft semi-puur html
- Component-based structuur
- Componenten zijn herbruikbaar
- Je kan het snel oppakken
- Lastiger om te debuggen
- Je ziet al gauw dat je andere frameworks/oplossingen (denk aan Backbonejs / jQuery) nodig hebt om bepaalde zaken zoals: Validation,ajax post/get requests etc te verwerken.
- HTML gemengd met javascript. Voor een front-end developer moet je aan de javascript code zitten om css/html aanpassingen te maken.
- Geen IDE support. JSX wordt door weinigen IDE's ondersteund, ik moet dus alerter zijn voor bugs/errors, die mijn IDE niet afvangt.
Waar ik laatst heb gewerkt als bijbaan/stage/fulltime heb ik veel met Angular.js gewerkt. Beide voor kleine websites en grote web applicaties.
Ik heb veel code van eerdere projecten kunnen hergebruiken en heb al heel wat ervaring. Doordat ik al heel wat ervaring heb ging alles veel soepeler en wist ik wat me te doen staat.
- Seperation of concerns. Gescheiden HTML en javascript.
- Opinionated software. Dit lijdt tot een structuur aanbevelen oftewel seeds. CleverStack Angular seed lijkt op de structuur die ik aanhoud.
- IDE support. Zoals jQuery wordt ook Angularjs door vele IDE's ondersteund voor autocomplete.
- Iemand die al eerder met een MVC structuur heeft gewerkt zal al snel begrijpen waar controllers, models en services voor dienen. En ook waar REST tussen het MVC structuur past.
- Met wat grafische aanpassingen kan het een mobiele app worden. Zie ionic
- Vergt meer tijd om het te leren kennen. Vooral als je het MVC structuur en REST niet kent.
- Voor een klein project komt er meer code bij kijken dan bijvoorbeeld bij React.js
- HTML bevat ook angularjs logica.(daaraan tegen wel verplaatsbaar en duidelijk wat waar voor dient)
- In vergelijking met React.js is de HTML performance trager