React Fiber sarebbe stato studiato in primo luogo per offrire il massimo livello di retrocompatibilità possibile con l'attuale variante del framework e le applicazioni che si basano su di esso, in secondo luogo sarebbe stata posta particolare attenzione alle componenti per la creazione rapida di UI responsive, in grado di garantire rendering ottimali su qualsiasi area di visualizzazione, indipendentemente dal dispositivo di riferimento.

Tecnicamente React Fiber dovrebbe basarsi su un livello di astrazione molto più elevato rispetto a React, questa caratteristica fornirebbe maggiore flessibilità nella creazione di animazioni, layout e gesture. Fondamentale da questo punto di vista il concetto di incremental rendering, grazie al quale suddividere la fase relativa alla resa grafica in diverse porzioni da associare a più frame. Tale impostazione dovrebbe permettere di gestire una problematica abbastanza consueta nello sviluppo delle UI, la perdita di frame nelle animazioni dovuta all'esecuzione simultanea di tutte le componenti per il rendering.

Interessante anche il nuovo approccio basato sullo scheduling che dovrebbe consentire di sfruttare un'architettura basata sulle "fiber", unità di lavoro, con cui mettere in pausa un'operazione per riprenderla successivamente, assegnare dei livelli di priorità specifici ad operazioni differenti, riutilizzare operazioni precedentemente completate e abortire un'operazione quando non più necessaria.

Il rendering incrementale per il Responsive Design, lo scheduling e una backward compatibility ottenuta grazie alla reimplementazione dell'API di base, dovrebbero rendere la migrazione da React a React Fiber non particolarmente traumatica. Non è comunque escluso che il passaggio tra le due versioni del progetto richieda di apportare delle modifiche alle applicazioni realizzate, motivo per il quale è consigliabile seguire l'evoluzione di React Fiber fino al suo rilascio.

Via React Fiber

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *