Inertia.js, is het bruikbaar voor ons?

Wekelijks is er bij Ivaldi een Innovation Talk. Er wordt dan een onderwerp door één van ons voorbereid en uitgediept. Onlangs werd de ‘innotalk’ gegeven door Jesse en ging het over Inertia.js.

Inertia.js is een soort protocol om traditionele server-side web frameworks (bijvoorbeeld Ruby on Rails) met weinig moeite te laten samenwerken met een client-side view rendering framework (bijvoorbeeld React). Je bouwt er een applicatie mee die voelt als een single page application (SPA), zonder veel van de uitdagingen die een SPA normaal met zich meebrengt.

Jesse kwam tot dit onderwerp omdat deze voorbij is gekomen in de Ivaldi Reading List. Het leek hem interessant omdat Ivaldi de opzet van gebouwde applicaties continu wil verbeteren en uniformeren. Mogelijk kan Inertia.js hier een rol in spelen.

Met behulp van Intertia.js zou gemakkelijk de taak van het opbouwen van de views kunnen verschuiven van de server naar de client. Daarbij kunnen de controllers en routes van Rails worden blijven gebruikt zoals wij gewend zijn. Het voordeel is dat dit een vloeiendere gebruikerservaring oplevert, dat de uitwisseling van gegevens tussen de server en client iets efficiënter gebeurt en dat UI componenten gemakkelijker hergebruikt en interactief gemaakt kunnen worden. Het nadeel is dat in ERB gebruikte ‘view helper’-methodes vanzelfsprekend niet meer beschikbaar zullen zijn, waarvoor alternatieven gezocht of gebouwd moeten worden. Denk bijvoorbeeld aan het tonen van foutmeldingen in een formulier. Ook kunnen modellen niet langer bevraagd worden vanuit de view, dus alle data op de pagina moeten zorgvuldig vroegtijdig worden geladen en meegestuurd vanuit de controller. Tot slot wordt het insturen van formulieren niet automatisch afgehandeld, daarvoor is telkens wat aangepaste code nodig.

Meer informatie is te vinden in de slides;