Po 6 metų kūrimo „React Native“ komanda pristatė visiškai perrašytą sistemos architektūrą (0,76) – reikšmingiausią atnaujinimą nuo „React Native“ įkūrimo. Tai didelio darbo, siekiant pagerinti platformos našumą, stabilumą ir funkcijas, rezultatas.
Pagrindiniai pakeitimai
Naujoji versija visiškai palaiko modernias „React“ funkcijas, įskaitant „Suspense“, „Transitions“ ir automatinį paketų sudarymą. „React Native“ pagaliau turi visavertį „useLayoutEffect“ – dabar „leyout“ tvarkymas dabar yra sinchroniškas ir nuspėjamas. Tai leidžia teisingai išdėstyti vartotojo sąsajos elementus be tarpinių būsenų ir vaizdinių artefaktų.
Našumo patobulinimai
Tiltas tarp JavaScript ir vietinio kodo buvo visiškai pašalintas. Dabar bendravimas vyksta tiesiogiai per „JavaScript“ sąsają (JSI), kuri žymiai pagreitina programos veikimą ir paleidimą. Naujasis atvaizdavimo įrenginys gali vienu metu apdoroti kelis komponentų medžius skirtingose gijose su skirtingais prioritetais. Tai leidžia pertraukti žemo prioriteto naujinimus, kad būtų galima apdoroti vartotojo įvestį, užtikrinant reaguojančią sąsają net atliekant sudėtingus skaičiavimus.
Techniniai patobulinimai
Savoji modulių sistema buvo visiškai pertvarkyta. Dabar pasiekiama sinchronizuota prieiga prie savųjų sąsajų su visa tipo sauga tarp JavaScript ir savojo kodo. Dabar galima rašyti kelių platformų C++ kodą, kuris veikia visose palaikomose platformose: iOS, Android, Windows ir macOS. Moduliai įkeliami atsainiai, ženkliai sumažinant programėlės paleidimo laiką ir atminties sąnaudas.
Vaizdo išlyginimas, anksčiau pasiekiamas tik „Android“, dabar veikia ir „iOS“ dėl bendro C++ atvaizdavimo priemonės. Šis optimizavimas automatiškai supaprastina giluminius komponentų medžius ir pagerina atvaizdavimo našumą.
Įrodyta gamyboje
Naujoji architektūra jau aktyviai naudojama pagrindinėse programose: Facebook, Instagram, Expensify, Kraken ir BlueSky. „Facebook“ ir „Instagram“, skirti „Meta Quest“, taip pat yra sukurti remiantis nauja architektūra. Tai parodo jo pasirengimą naudoti bet kokio masto ir sudėtingumo projektuose.
Migracijos procesas
Daugumą programų bus galima atnaujinti su tokiomis pat pastangomis kaip ir įprastas leidimas. Daugiau nei 850 populiarių bibliotekų jau palaiko naują architektūrą, įskaitant visas bibliotekas, kuriose kas savaitę atsisiunčiama daugiau nei 200 tūkst. Dėl automatinio suderinamumo su senąja architektūra sluoksnio perkėlimas gali būti laipsniškas – nereikia iš karto perrašyti visos programos.
Populiarios bibliotekos, tokios kaip react-native-mmkv ir Reanimated, jau pastebėjo reikšmingus patobulinimus nuo perėjimo prie naujos architektūros. MMKV tapo visiškai kelių platformų C++ moduliu su patobulinta tipo sauga, o Reanimated 4 įgijo galimybę valdyti animacijas ir išdėstymą skirtingose gijose.
Tolesnė plėtra
„React Native“ komanda planuoja tobulinti įtaisytuosius komponentus ir išplėsti šiuolaikinių žiniatinklio standartų palaikymą. „Event Loop“ dabar veikia pagal HTML standarto žiniatinklio specifikacijas, kurios ateityje leis naudoti API, pvz., „microtasks“, „MutationObserver“ ir „IntersectionObserver“.
Praktinė informacija
Naudojamų bibliotekų suderinamumą galima patikrinti reactnative.directory. Oficialioje dokumentacijoje yra išsamus perkėlimo vadovas. Jei kyla problemų, visada yra galimybė išjungti naują architektūrą per projekto konfigūraciją.
Jei tekste radote klaidą, siųskite pranešimą autoriui pažymėdami klaidą ir paspausdami Ctrl-Enter.
Norėdami komentuoti, turite būti prisijungę.
Prisijunkite