Is React een library of een framework?

Een veel gestelde vraag is: is React nu een library of een framework. De reden waarom deze vraag vaak gesteld wordt is omdat react zichzelf altijd stug een library noemt, maar zich als framework gedraagt!

Wat is het verschil tussen een library en een framework?

Een library is een stuk code, meestal van een derde partij, die iets voor jouw doet. Misschien toont het grafieken, doet het wiskundige berekeningen, haalt het data op uit de back-end etc etc.

Een framework is een stuk code, meestal ook van een derde partij, die structuur aanbrengt in jouw code, en functionaliteit aanbied zoals bijvoorbeeld: database connectie management, het makkelijker modelleren van code, zorgen dat code makkelijker te testen is.

Het grote verschil is dat jij een library zelf aanroept, en een framework jouw code aanroept. Zie het volgende voorbeeld:

Library
Jouw code
Library 1
Library 2
Library 3
Framework
Framework
jouw code
jouw code
jouw code

Neem een back-end framework zoals: Spring boot, django, Ruby on Rails of Laravel. Jij plaatst controllers, models, en views in een bepaalde directory / folder, zij rijgen alles aan elkaar en zorgen dat jouw code op het juiste moment wordt aangeroepen.

Een library roep jij zelf aan op het moment dat je het nodig hebt. Jij importeert bijvoorbeeld een library zoals date-fns, om wat datums te manipuleren. Jij roept de library aan!

Kortom: een framework roept jouw aan, en jij roept een library aan!

Wat zegt React zelf?

React noemt zich zelf een library. De reden waarom is het volgende: react houdt zich alleen bezig met de view, en niets anders.

Met view bedoelt react dat ze alleen maar bezig zijn met het updaten / synchroniseren van de DOM. Verder wil react helemaal van niets weten. Dit betekent het volgende:

  • React heeft geen router, om URLs te koppelen aan componenten. De browsers adressbalk regel je zelf.

  • React heeft geen voorzieningen voor animaties.

  • React heeft geen unit test voorzieningen ingebouwd.

  • React heeft geen HTTP communicatie laag.

Waar dit vandaan komt is het volgende: in front-end framework land is er een framework genaamd: Angular. Angular zit vol met toeters en bellen, en heeft wel een router, animaties, testing, en een HTTP communicatie laag.

React wil zich tegen dit soort front-end frameworks zoals angular afzetten. Met React haal je dus het bare minumum binnen!

React wil express klein blijven de redenen hiervoor:

  • Je react zowel groot als klein kan inzetten. Je kan een hele website in php programmeren en een heel klein interactief deel in react.

  • Je je eigen keuzes kan maken: wil je een formulier library die hook of component gebaseerd is?

    Bij angular gebeurde het ook constant dat de community de built abstracties niet goed genoeg vond. Dus kwamen er toch bijvoorbeeld alternatieve formulier libraries.

    React wil dan ook niet alles doen, omdat de community dit toch beter wil doen. En als het in het framework zit, zit je er aan vast!

Waarom men React toch een framework vindt

De reden waarom men toch vaak React als framework beschouwd is het volgende:

  • Concurrenten van React zoals angular, svelte en vue noemen zich zelf wel gewoon een framework. Het is dan simpelweg irritant als je een vergelijking maakt, om React dan een library te noemen.

  • React gedraagt zich als een framework! React is net als elk ander framework erg zwaar. Met zwaar bedoel ik zwaar als in hemellichamen. Als jouw code een planeet is dan is een library een maan, en een framework een zon.

    React heeft dus buitensporig veel invloed op jouw code / planeet. Heb je een grafiek nodig. dan kies je al snel een react grafiek library, in plaats van een generieke HTML gebaseerde library.

Wat vindt Maarten?

Een foto van Maarten, een gemiddeld gezicht al zeg ik het zelf.

Ik zelf noem react altijd een framework vanwege bovenstaande uitleg over wat een library vs framework is, React boort zich net iets te diep in de code, en maakt net iets te veel beslissingen.

Aan de andere kant maakt het voor ons als react developers weinig uit wat react van zichzelf vindt! Als het maar werkt!

Contact

Neem contact op via e-mail, phone of app, als je vragen hebt of een offerte wilt aanvragen.

Vraag een offerte aan Boek kennismakingsgesprek