„RxDart“ įvadas: pagrindai pradedantiesiems
Turėsite būti susipažinę su Dartu, nes „Flutter“ programos kūrimas. „Dart“ yra populiari programavimo kalba, kurią kūrėjai naudoja kurdami nebenaudojamas programas.
„RxDart“ yra „Dart“ plėtinys, tačiau reaktyvioji programavimo bibliotekos versija, kuri naudoja „Dart“ būdingas galimybes ir išplečia jas bei įtaisytuosius srautus.
Naudodamiesi šiomis išplėstinėmis Reactive Extensive (Rx) galimybėmis ir principais, kūrėjai gali rašyti ir palaikyti asinchroninį kodą.
Jo Rx sistema standartizuotu būdu sudaro įvykiais pagrįstas programas. „RxDart“ taip pat naudoja stebimas sekas kartu su LINQ stiliaus užklausų operatoriais programų ar programinės įrangos kūrimui.
„RxDart“ valdo būseną, tvarko asinchroninius duomenis ir aiškiai, suprantamai ir deklaratyviai reaguoja į vartotojo įvestis. Šis straipsnis yra tik įvadas į RxDart. Pradėkime tai daryti!
Kas yra reaktyvusis programavimas RxDart?
Reaktyvusis programavimas yra programavimo paradigma, kuri yra susijusi su duomenų srautu ir pokyčių sklaida. Reaktyvioje sistemoje egzistuoja keli komponentai ir jie individualiai reaguoja į duomenų pokyčius, vykstančius realiuoju laiku.
Šie atsakymai yra naudingi programoms, kuriose asinchroninių duomenų srautų valdymas yra labai svarbus.
Pavyzdžiui, galite įsivaizduoti paiešką, kuri užklausa serverio rezultatų, kai tik pradedate vesti tekstą. Todėl galite naudoti reaktyvųjį programavimą vietoj rankinio būsenos ir API iškvietimų valdymo, kad galėtumėte stebėti vartotojo įvestį.
Taip pat galite automatiškai skleisti svarbius API iškvietimus ir vartotojo sąsajos atnaujinimus, kai duomenys keičiasi.
„Dart“ integruoti srautai
„Dart“ yra su pagrindine API, kuri pasirūpina asinchroniniais duomenimis naudojant „Streams“. Šie srautai nurodomi dviejų tipų asinchroninių įvykių seka arba tvarka:
- Viena prenumerata leidžia vienam klausytojui klausytis vienu metu
- Transliacija, leidžianti daugeliui klausytojų
Nekyla nė trupučio abejonių dėl srauto tvirtumo, tačiau dažnai jie tampa vaizdingi, kai vyksta sudėtingos duomenų transformacijos ir deriniai.
Štai kodėl ir kada mums reikia „RxDart“ palaikymo, kuris išplečia „Dart“ fakultetus ir remiasi operatoriais bei šablonais, kilusiais iš kitų kalbų, pvz., „Swift“.
„RxDart“: „Dart“ srautų išplėtimas
Kadangi „RxDart“ yra sukurtas „Dart’s Stream“ API, jis gali pasiūlyti daug įrankių, skirtų asinchroniniams duomenų srautams kurti, derinti, transformuoti ir valdyti. Iš esmės RxDart naudoja subjektus ir operatorius, kurie yra atsakingi už lankstų ir galingą srauto manipuliavimą.
Dalykai
RxDart apima subjektą, kuris vadinamas specialiu srautu, kuris turi dvejopą paskirtį, nes veikia kaip:
Tai reiškia, kad subjektas gali klausytis kitų srautų ir tuo pačiu gali transliuoti savo vertybes savo klausytojams. Įvairių rūšių RxDart temos yra:
- PublishSubject: jis pašalina visus elementus prenumeratoriams nuo tada, kai jie užsiprenumeruoja. Ji neatkuria senų elementų.
- BehaviorSubject: Tai gana panašu į PublishSubject, bet naujiems prenumeratoriams gali atkurti naujausią arba naudotą elementą.
- ReplaySubject: perkelia ir išsaugo išsiųstų elementų istoriją ir atkuria juos, kai užsiprenumeruoja nauji prenumeratoriai.
- AsyncSubject: jis išduoda tik paskutinį elementą, kai srautas bus baigtas ir galutinis.
Operatoriai
Operatoriai yra reikšmingiausi ir konkretiausi RxDart vienetai. Be srautų transformavimo, filtravimo ir derinimo, jie taip pat gali jais manipuliuoti deklaratyviais ir sudarytais būdais. Kai kurie dažni operatoriai yra:
- žemėlapį: paverčia kiekvieną skleidžiamą elementą į kitą elementą.
- plokščias žemėlapis: sulieja kelis srautus į vieną atskirą srautą.
- debounceTime: nepaiso siunčiamų elementų, jei per tam tikrą laikotarpį išleidžiamas kitas elementas. Naudinga paieškos įvestims.
- switchMap: persijungia į naują srautą, kai išleidžiamas naujas įvykis, atšaukdamas ankstesnį srautą.
- sujungti Naujausias: sujungia ir sujungia naujausias vertes iš kelių srautų.
Šie operatoriai gali sudaryti sudėtingas asinchronines operacijas be gilių atgalinių skambučių, todėl kodas tampa lengviau skaitomas, valdomas ir prižiūrimas.
Kodėl „Flutter“ naudoti „RxDart“?
Plazdėjimas, a kelių platformų sistema ir vartotojo sąsajos įrankių rinkinys, taip pat paremtas įvykiais pagrįstomis plėtros koncepcijomis.
„Flutter“ programoms taip pat reikalingas efektyvus srauto valdymas, pradedant reagavimu į vartotojo įvestį ir baigiant asinchroninių duomenų apdorojimu. „RxDart“ integruojasi su „Flutter“, kad tvarkytų duomenis ir vartotojo sąsajos būseną reaktyviai ir vienu metu.
Kai kurie įprasti „RxDart“ naudojimo „Flutter“ atvejai yra šie:
- Formos patvirtinimas: RxDart patvirtina formos laukus realiuoju laiku, stebėdamas įvesties laukų pokyčius ir atitinkamai atnaujindamas formos būseną.
- Paieškos funkcionalumas: reaktyviosios paieškos juostos įdiegimas, kuri klausosi naudotojo įvesties, atšaukia paieškos užklausą, kad išvengtų nereikalingų API iškvietimų, ir dinamiškai atnaujina paieškos rezultatus.
- Valstybės valdymas: „RxDart“ padeda valdyti programos būseną reaktyviu būdu. Stebėdami duomenų srautus galite užtikrinti, kad vartotojo sąsaja būtų sinchronizuota su pagrindiniu duomenų modeliu.
- Sudėtingi duomenų srautai: Kai programai reikia atlikti kelias asinchronines užduotis, RxDart operatoriai suteikia švarų būdą sujungti ir valdyti šias užduotis.
RxDart ir BLoC modelis
BLoC arba verslo logikos komponento modelis yra dizaino forma, padedanti būsenoje „Flutter“ valdymasir jis taip pat gerai integruojamas su RxDart.
BLoC šabloną galima naudoti norint atskirti pristatymo sluoksnį nuo verslo logikos, atskleidžiant įvesties ir išvesties srautus. „RxDart“ pabrėžia šį modelį kurdama ir tvarkydama įvykių ir būsenų srautus.
Štai paprastas pavyzdys, kaip RxDart naudojamas su BLoC šablonu:
class CounterBloc {
final _counterSubject = BehaviorSubject
// Atidenkite srautą skaitikliui
Srautas
// Pridėkite vertę prie srauto
void increment() {
_counterSubject.add(_counterSubject.value + 1);
}
// Išmeskite srautą
galioti disponuoti () {
_counterSubject.close();
}
}
Šiame pavyzdyje matome, kaip „BehaviorSubject“ saugo ir tvarko skaitiklio būseną, o „counterStream“ suteikia vartotojo sąsajai galimybę klausytis skaitiklio pokyčių.
Kai į procesą įtraukiamas padidinimo metodas, jis prideda srautui naujos vertės ir nuosavo kapitalo, o visi „counterStream“ prenumeruojami valdikliai bus automatiškai atnaujinti laukiami ir reikalingi naujiniai.
RxDart privalumai
- Deklaratyvus: RxDart gali padėti perduoti duomenis ir leisti kūrėjams apibūdinti jį deklaratyviai. Užuot rankiniu būdu valdęs būseną ir atgalinius skambučius, jis gali padėti transformuoti srautus.
- Sudėtingumas: „RxDart“ operatoriai gali sudaryti sudėtingas asinchronines darbo eigas moduliniu būdu. Galite grandinės operatorius apdoroti duomenų srautus skaitomu ir prižiūrimu būdu.
- Efektyvumas: naudodami tokius operatorius kaip debounce, throttle ir differentUntilChanged, galite optimizuoti tinklo užklausas ir išvengti perteklinių ir nereikalingų vartotojo sąsajos naujinių.
- Nuoseklumas: „RxDart“ siūlo nuoseklią API, kuri tvarko asinchroninius įvykius ir sumažina kūrėjų pažinimo apkrovą, kai jie sąveikauja su įvairių tipų asinchroniniais duomenimis.
Išvada
„RxDart“ suteikia „Dart“ ir „Flutter“ reaktyvaus programavimo gebėjimų ir tvirtumo, leisdama kūrėjams deklaratyviai ir komponuojamai tvarkyti asinchroninius duomenų srautus.
Galite sukurti nedidelę programėlę su paieškos funkcija arba sudėtingą programą su keliais asinchroniniais duomenų srautais; „RxDart“ visada turės reikiamų įrankių ir galimybių elegantiškai valdyti būseną, įvykius ir šalutinius poveikius.
Išplėsdama „Dart“ vietinius srautus, „RxDart“ suteikia papildomų funkcijų per savo objektus ir operatorius. Taigi, Flutter ir Dart gali tapti geidžiamiausiu ir puikiu pasirinkimu rašyti švaresnį, labiau prižiūrimą kodą.
Jei jums reikia daugiau pagalbos naudojant RxDart, susisiekite su šviesiais Xavor vadovais, kurie gali padėti nukreipti jūsų verslą ir interneto plėtrą teisinga linkme.
Išnaudokite visas „Flutter“ ir „RxDart“ galimybes ir visam laikui pakeiskite savo programos kūrimo scenarijų.